Mata, a Fast and Simple Finite Automata Library (Technical Report)
David Chocholat\'y, Tom\'a\v{s} Fiedor, Vojt\v{e}ch Havlena and, Luk\'a\v{s} Hol\'ik, Martin Hru\v{s}ka, Ond\v{r}ej Leng\'al, Juraj, S\'i\v{c}

TL;DR
Mata is a C++ automata library optimized for speed and simplicity, supporting applications like string constraint solving and regular expression reasoning, with Python bindings and superior benchmark performance.
Contribution
It introduces a fast, simple, and extendable automata library with efficient algorithms and a comprehensive benchmark, outperforming existing libraries in various applications.
Findings
Mata significantly outperforms other automata libraries in benchmarks.
The library enhances string constraint solving with the Z3-Noodler solver.
Mata's design facilitates easy extension and modification.
Abstract
Mata is a well-engineered automata library written in C++ that offers a unique combination of speed and simplicity. It is meant to serve in applications such as string constraint solving and reasoning about regular expressions, and as a~reference implementation of automata algorithms. Besides basic algorithms for (non)deterministic automata, it implements a fast simulation reduction and antichain-based language inclusion checking. The simplicity allows a straightforward access to the low-level structures, making it relatively easy to extend and modify. Besides the C++ API, the library also implements a Python binding. The library comes with a large benchmark of automata problems collected from relevant applications such as string constraint solving, regular model checking, and reasoning about regular expressions. We show that Mata is on this benchmark significantly faster than all…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsWeb Application Security Vulnerabilities · Software Testing and Debugging Techniques · Natural Language Processing Techniques
