add ltlsynt executable

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.
This commit is contained in:
Thibaud Michaud 2017-09-10 22:47:50 +02:00
parent 7a11842613
commit 0821c97eb8
13 changed files with 812 additions and 4 deletions

View file

@ -36,6 +36,7 @@ dist_man1_MANS = \
ltldo.1 \
ltlfilt.1 \
ltlgrind.1 \
ltlsynt.1 \
randaut.1 \
randltl.1
dist_man7_MANS = \
@ -69,6 +70,12 @@ ltldo.1: $(common_dep) $(srcdir)/ltlcross.x $(srcdir)/../ltldo.cc
ltlfilt.1: $(common_dep) $(srcdir)/ltlfilt.x $(srcdir)/../ltlfilt.cc
$(convman) ../ltlfilt$(EXEEXT) $(srcdir)/ltlfilt.x $@
ltlgrind.1: $(common_dep) $(srcdir)/ltlgrind.x $(srcdir)/../ltlgrind.cc
$(convman) ../ltlgrind$(EXEEXT) $(srcdir)/ltlgrind.x $@
ltlsynt.1: $(common_dep) $(srcdir)/ltlsynt.x $(srcdir)/../ltlsynt.cc
$(convman) ../ltlsynt$(EXEEXT) $(srcdir)/ltlsynt.x $@
genaut.1: $(common_dep) $(srcdir)/genaut.x $(srcdir)/../genaut.cc
$(convman) ../genaut$(EXEEXT) $(srcdir)/genaut.x $@
@ -86,6 +93,3 @@ spot-x.7: $(common_dep) $(srcdir)/spot-x.x $(srcdir)/../spot-x.cc
spot.7: $(common_dep) $(srcdir)/spot.x $(srcdir)/../spot.cc
$(convman7) ../spot$(EXEEXT) $(srcdir)/spot.x $@
ltlgrind.1: $(common_dep) $(srcdir)/ltlgrind.x $(srcdir)/../ltlgrind.cc
$(convman) ../ltlgrind$(EXEEXT) $(srcdir)/ltlgrind.x $@

3
bin/man/ltlsynt.x Normal file
View file

@ -0,0 +1,3 @@
.\" -*- coding: utf-8 -*-
[NAME]
ltlsynt \- synthesize AIGER circuits from LTL specifications