UP | HOME

# Spot: a platform for LTL and ω-automata manipulation

## Table of Contents

- Latest version
- Documentation
- Try Spot On-line
- License
- Staying in touch
- Citing

Spot is a C++17 library for LTL, ω-automata manipulation and model checking. It 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 (a.k.a. Emerson-Lei acceptance)
- 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 five syntaxes (HOA, never claims, LBTT, DSTAR, PGsolver).
- 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.

## Latest version

The latest version is 2.14.2 and was released on 2025-09-18. Please see the download and installation instructions.

## Documentation

- Basic concepts.
- Command-line tools.
- Code examples.
- Doxygen documentation, generated automatically from the source code.
- Definition of the temporal operators supported by Spot.
- Help for upgrading existing code written for Spot 1.2.x to Spot 2.

## Try Spot On-line

- Our on-line translator provides a convenient way to translate LTL or PSL formulas into automata, or to study/compare formulas.
- spot-sandbox is a Jupyter notebook with a complete installation of Spot that allows you to try the command-line tools (using a shell interface) as well as the Python bindings (in an IPython notebook).

## License

Spot is distributed under a GNU GPL v3 license.

One consequence is that any work based on Spot is covered by that license as well. For instance if you distribute a tool that links with Spot, you should distribute the source code of that tool 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.

## Citing

Our citing page has a list of papers you could cite if you need to reference Spot in an academic publication.