Spot
Table of Contents
Spot is a C++11 library for ω-automata manipulation and model checking. It has the following notable features:
- Support for LTL (several syntaxes supported) and 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 three syntaxes (never claims, HOA, or LBTT).
- Several algorithms for formula manipulation including: simplifying formulas, testing implication or equivalence, testing stutter-invariance, removing some operators by rewriting, …
- Several algorithms for automata manipulation including: product, emptiness checks, simulation-based reductions, minimization of weak-DBA, removal of useless SCCs, acceptance-condition transformations, etc.
- In addition to the C++ interface, most of its algorithms are usable via command-line tools, and via Python bindings.
- One of the command-line tool, called
ltlcross
is a rewrite of LBTT, but with support for PSL and arbitrary acceptance conditions. It could for instance be used to test tools that translate LTL into Rabin automata.
Latest version
The latest version is 1.99.4 and was released on 2015-10-01. Please see the download and installation instructions.
Documentation
- Command-line tools.
- Code examples.
- Doxygen documentation, generated automatically from the source code.
- Definition of the temporal operators supported by Spot.
On-line LTL/PSL translator
- Our on-line translator provides a convenient way to translate LTL or PSL formulas into automata, without installing Spot.
License
Spot is distributed under a GNU GPL v3 license.
A consequence is that if you distribute a tool built using Spot, you must make the source code of that tool available as well.
Staying in touch
spot-announce@lrde.epita.fr
is an extremely low-traffic and
read-only mailing list for release announcements. If you want to stay
informed about future releases of Spot, we invite you to subscribe.
spot@lrde.epita.fr
is a list for general discussions and questions
about Spot. Subscribe here if you want to join, but feel free to send
in any question (in English) or bug report without subscribing.