The Automata and Applications team develops Spot, a free and open-source platform for working with ω-automata and temporal logic formulas. Spot is primarily a C++17 library designed around the automata-theoretic approach to model checking and reactive synthesis. It comes with both command-line tools and Python bindings to make its algorithms accessible in different contexts, including interactive environments such as IPython or Jupyter.
Spot has the following notable features:
- Support for LTL (several syntaxes supported) and a subset of the linear fragment of PSL.
- Support for ω-automata with arbitrary acceptance condition.
- Support for transition-based acceptance (state-based acceptance is supported by a reduction to transition-based acceptance).
- The automaton parser can read a stream of automata written in any of four syntaxes (HOA, never claims, LBTT, DSTAR).
- Several algorithms for formula manipulation including: simplifying formulas, testing implication or equivalence, testing stutter-invariance, removing some operators by rewriting, translation to automata, testing membership to the temporal hierarchy of Manna & Pnueli…
- Several algorithms for automata manipulation including: product, emptiness checks, simulation-based reductions, minimization of weak-DBA, removal of useless SCCs, acceptance-condition transformations, determinization, SAT-based minimization of deterministic automata, Alternating Cycle Decomposition, etc.
- Support for Safety and parity games.
- Applications to reactive synthesis and model checking.
- In addition to the C++ interface, most of its algorithms are usable via command-line tools, and via Python bindings.
- One command-line tool, called ltlcross, is a rewrite of LBTT, but with support for PSL and automata with arbitrary acceptance conditions. It can be used to test tools that translate LTL into ω-automata, or benchmark them. A similar tool, autcross, checks tools that transform automata.
Official link
Related Publications
[1]
Alexandre Duret-Lutz • Étienne Renault • Maximilien Colange and Florian Renkin • Alexandre Gbaguidi Aisse • Philipp Schlehuber-Caissier • Thomas Medioni • Antoine Martin • Jérôme Dubois • Clément Gillard • Henrich Lauko. "From Spot 2.0 to Spot 2.10: What's New?". Proceedings of the 34th International Conference on Computer Aided Verification (CAV'22). 2022. https://doi.org/10.1007/978-3-031-13188-2_9.
[2]
Christel Baier • František Blahoudek • Alexandre Duret-Lutz and Joachim Klein • David Müller • Jan Strejček. "Generic Emptiness Check for Fun and Profit". Proceedings of the 17th International Symposium on Automated Technology for Verification and Analysis (ATVA'19). 2019. https://doi.org/10.1007/978-3-030-31784-3_26.
[3]
Antoine Martin • Etienne Renault • Alexandre Duret-Lutz. "Translation of Semi-Extended Regular Expressions using Derivatives". Proceedings of the 28th International Conference on Implementation and Applications of Automata (CIAA'24). 2024. https://doi.org/10.1007/978-3-031-71112-1_17.