Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LTLSYNT(1)			 User Commands			    LTLSYNT(1)

NAME
       ltlsynt - reactive synthesis from LTL specifications

SYNOPSIS
       ltlsynt [OPTION...]

DESCRIPTION
       Synthesize a controller from its	LTL specification.

   Input options:
       --from-pgame=FILENAME
	      Read  a  parity  game in Extended	HOA format instead of building
	      it.

       -f, --formula=STRING
	      process the formula STRING

       -F, --file=FILENAME[/COL]
	      process each line	of FILENAME as a formula; if COL is a positive
	      integer, assume a	CSV file and read column COL; use  a  negative
	      COL to drop the first line of the	CSV file

       --ins=PROPS
	      comma-separated  list  of	 uncontrollable	(a.k.a.	 input)	atomic
	      propositions, interpreted	as a regex if enclosed in slashes

       --lbt-input
	      read all formulas	using LBT's prefix syntax

       --lenient
	      parenthesized blocks that	cannot be parsed  as  subformulas  are
	      considered as atomic properties

       --outs=PROPS
	      comma-separated  list  of	 controllable  (a.k.a.	output)	atomic
	      propositions, , interpreted as a regex if	enclosed in slashes

       --part-file=FILENAME
	      read the I/O partition of	atomic propositions from FILENAME

       --tlsf=FILENAME[/VAR=VAL[,VAR=VAL...]]
	      Read a TLSF specification	from FILENAME, and call	syfco to  con-
	      vert  it	into  LTL.  Any	parameter assignment specified after a
	      slash is passed as '-op VAR=VAL' to syfco.

   Fine	tuning:
       --algo=sd|ds|ps|lar|lar.old|acd
	      choose the algorithm for synthesis:

       sd: translate to	TGBA, split, determinize
	      ds: translate to TGBA, determinize, split	ps: translate to  DPA,
	      split lar: translate to a	deterministic TELA, convert

       to DPA with LAR,	split (default)
	      lar.old: old version of LAR, for benchmarking; acd: translate to
	      a	deterministic TELA, convert

	      to DPA with ACD, split

       --bypass=yes|no
	      whether  to  try to avoid	to construct a parity game (enabled by
	      default)

       --decompose=yes|no
	      whether to decompose the specification as	 multiple  output-dis-
	      joint problems to	solve independently (enabled by	default)

       --global-equivalence=yes|no|before-decompose
	      whether to remove	atomic propositions that are always equivalent
	      to another one (enabled by default, both before and after	decom-
	      position)

       --polarity=yes|no|before-decompose
	      whether  to remove atomic	propositions that always have the same
	      polarity in the formula to speed things up (enabled by  default,
	      both before and after decomposition)

       --simplify=no|bisim|bwoa|sat|bisim-sat|bwoa-sat
	      simplification  to apply to the controller (no) nothing, (bisim)
	      bisimulation-based reduction, (bwoa)  bisimulation-based	reduc-
	      tion  with  output  assignment,  (sat)  SAT-based	 minimization,
	      (bisim-sat) SAT after bisim, (bwoa-sat)  SAT  after  bwoa.   De-
	      faults to	'bwoa'.

       --splittype=expl|semisym|fullysym|auto
	      Selects  the  algorithm to use to	transform the automaton	into a
	      game graph. Defaults to 'auto'.

   Output options:
       --aiger[=ite|isop|both[+ud][+dc][+sub0|sub1|sub2]]
	      encode the winning strategy as an	AIG circuit and	 print	it  in
	      AIGER  format.  The  first  word indicates the encoding to used:
	      "ite" for	If-Then-Else normal form; "isop" for  irreducible  sum
	      of  products; "both" tries both and keeps	the smaller one. Other
	      options further refine the encoding, see aiger::encode_bdd.  De-
	      faults to	"ite".

       --csv[=[>>]FILENAME], --csv-without-formula[=[>>]FILENAME]
	      output  statistics  as CSV in FILENAME or	on standard output (if
	      '>>' is used to request append mode, the header line is not out-
	      put)

       --csv-with-formula[=[>>]FILENAME]
	      like --csv, but with an additional 'formula' column

       -d, --dot[=options]
	      Use dot format when printing the result (game, strategy, or  AIG
	      circuit,	depending  on other options).  The options that	may be
	      passed to	--dot depend on	the nature of  what  is	 printed.  For
	      games  and  strategies,  standard	automata rendering options are
	      supported	(e.g., see ltl2tgba --dot).  For AIG circuit, use  (h)
	      for horizontal and (v) for vertical layouts.

       --hide-status
	      hide  the	 REALIZABLE  or	 UNREALIZABLE line (The	exit status is
	      enough of	an indication.)

       -H, --hoaf[=1.1|b|i|k|l|m|s|t|v]
	      Output the automaton in HOA format (default).   Add  letters  to
	      select  (1.1) version 1.1	of the format, (b) create an alias ba-
	      sis if >=2 AP are	used, (i) use implicit labels for complete de-
	      terministic automata, (s)	 prefer	 state-based  acceptance  when
	      possible	[default],  (t)	force transition-based acceptance, (m)
	      mix state	and transition-based acceptance, (k) use state	labels
	      when possible, (l) single-line output, (v) verbose properties

       --print-game-hoa[=options]
	      print the	parity game in the HOA format, do not solve it

       --print-pg
	      print the	parity game in the pgsolver format, do not solve it

       -q, --quiet
	      suppress all normal output

       --realizability
	      realizability only, do not compute a winning strategy

   Miscellaneous options:
       --help print this help

       --verbose
	      verbose mode

       --verify
	      verify the strategy or (if demanded) AIG against the formula

       --version
	      print program version

       -x, --extra-options=OPTS
	      fine-tuning options (see spot-x (7))

       Mandatory  or  optional arguments to long options are also mandatory or
       optional	for any	corresponding short options.

   Exit	status:
       0      if all input problems were realizable

       1      if at least one input problem was	not realizable

       2      if any error has been reported

BIBLIOGRAPHY
       If you would like to give a reference to	this tool in  an  article,  we
       suggest you cite	the following papers:

             Florian  Renkin,	Philipp	 Schlehuber-Caissier, Alexandre	Duret-
	      Lutz, and	Adrien	Pommellet.   Dissecting	 ltlsynt.   In	Formal
	      Methods in System	Design,	2023.

             Thibaud Michaud and Maximilien Colange.  Reactive	Synthesis from
	      LTL Specification	with Spot.  In proceedings of SYNT@CAV'18.

REPORTING BUGS
       Report bugs to <spot@lrde.epita.fr>.

COPYRIGHT
       Copyright  (C)  2025  by	the Spot authors, see the AUTHORS File for de-
       tails.  License GPLv3+: GNU GPL version 3 or later  <http://gnu.org/li-
       censes/gpl.html>.
       This  is	 free  software:  you  are free	to change and redistribute it.
       There is	NO WARRANTY, to	the extent permitted by	law.

SEE ALSO
       ltlfsynt(1)

ltlsynt	(spot) 2.14.5		 January 2026			    LTLSYNT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ltlsynt&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help