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++20 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.16 and was released on 2026-09-03. 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. Feel free to send in any question (in English) or bug report. It is OK to post without subscribing to the list, however, in that case you message will have to be moderated and this may take several days.

## Citing

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