For now, ltlsynt only handles LTL realizability. It uses a reduction to parity game followed by Calude et al.'s reduction from parity game to reachability game. * bin/ltlsynt.cc, bin/Makefile.am, bin/man/ltlsynt.x, bin/man/Makefile.am, bin/.gitignore: New binary. * doc/org/arch.tex, doc/Makefile.am, doc/org/tools.org, doc/org/ltlsynt.org: Document it. * spot/misc/game.cc, spot/misc/game.hh, spot/misc/Makefile.am: Parity game wrapper for parity automata + reachability game interface from Calude et al.'s paper.
1.9 KiB
ltlsynt
Basic usage
This tool answers whether a controller can be built given an LTL/PSL formula
specifying its behavior. ltlsynt is typically called with
the following three options:
--input: a comma-separated list of input signal names--output: a comma-separated list of output signal names--formulaor--file: the LTL/PSL specification.
The following example is unrealizable, because a is an input, so no circuit
can guarantee that it will be true eventually.
ltlsynt --input=a --output=b -f 'F a'
UNREALIZABLE
TLSF
ltlsynt was made with the SYNTCOMP competition in
mind, and more specifically the TLSF track of this competition. TLSF is a
high-level specification language created for the purpose of this competition.
Fortunately, the SYNTCOMP organizers also provide a tool called syfco which
can translate a TLSF specification to an LTL formula.
The following four steps show you how a TLSF specification called spec.tlsf can
be tested for realizability using syfco and ltlsynt:
LTL=$(syfco FILE -f ltlxba -m fully)
IN=$(syfco FILE -f ltlxba -m fully)
OUT=$(syfco FILE -f ltlxba -m fully)
ltlsynt --formula="$LTL" --input="$IN" --output="$OUT"
Algorithm
The tool reduces the synthesis problem to a parity game, and solves the parity game using Zielonka's recursive algorithm. The full reduction from LTL to parity game is described in a paper yet to be written and published.
You can ask ltlsynt not to solve the game and print it instead (in the
PGSolver format) using the --print-pg option, and leaving you the choice of
an external solver such as PGSolver.