Commit graph

4796 commits

Author SHA1 Message Date
Maximilien Colange
1fdc32f9bb ltlsynt: improve construction of turn-based games
Improve the way transitions are duplicated when preparing the turn-based
game for synthesis. The resulting arena should now be deterministic on
nodes owned by the environment. Also move the code to another file, so
that it is easier to test (e.g. in Python).

* bin/ltlsynt.cc: move the code
* spot/twaalgos/split.cc, spot/twaalgos/split.hh: move the code and
  implement the improvements
* tests/Makefile.am, tests/python/split.py: test it
* tests/core/ltlsynt.test: update existing tests to reflect the changes
2018-04-30 14:41:52 +02:00
Alexandre Duret-Lutz
4fbcdaca91 print_dot: correctly escape \n in html output
* spot/misc/escape.cc (escape_html): Handle \n.
* tests/core/readsave.test: Test it.
* NEWS: Mention the fix.
2018-04-27 15:46:56 +02:00
Maximilien Colange
9d34c1f500 fix parity game printing
* spot/misc/game.cc: a state could be printed several times
* tests/core/ltlsynt.test: update tests
2018-04-23 14:38:45 +02:00
Maximilien Colange
9698363ef5 parity game: various improvements
Zielonka algorithm has been fixed and optimized.
It also now computes the strategy for both players.

* bin/ltlsynt.cc: Update calls to parity_game::solve()
* spot/misc/game.cc, spot/misc/game.hh: Implement the changes
2018-04-23 11:51:12 +02:00
Maximilien Colange
0e29d30d1b ltlsynt: fix the construction of the arena
* bin/ltlsynt.cc: implement it
* tests/core/ltlsynt.test: update tests
2018-04-23 11:51:12 +02:00
Maximilien Colange
5d80cc556c Add a verbose option to ltlsynt
* bin/ltlsynt.cc: implement it
2018-04-23 11:51:02 +02:00
Alexandre Duret-Lutz
bc2fa1a2a3 * tests/python/satmin.ipynb: Remove a debug statement. 2018-04-20 16:55:20 +02:00
Alexandre Duret-Lutz
c2e177ee09 Merge branch 'master' into next 2018-04-20 08:06:33 +02:00
Alexandre Duret-Lutz
fea122f7ba Bump version to 2.5.3.dev
* NEWS, configure.ac: Here.
2018-04-20 07:59:33 +02:00
Alexandre Duret-Lutz
8de9f6aa26 Release Spot 2.5.3
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2018-04-20 07:57:01 +02:00
Alexandre Duret-Lutz
965ae855c2 is_unambiguous: fix false negatives again
Reported by Simon Jantsch and David Müller.

* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite wihtout assuming
that the product of two accepting SCCs is accepting,  Also use
the result of is_accepting_scc()/is_rejectng_scc() when available.
* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make it
possible to check the acceptance of a unique SCC.
* tests/core/unambig.test: Add more test cases.
2018-04-15 22:35:00 +02:00
Alexandre Duret-Lutz
2fe67769d7 is_unambiguous: fix false negatives again
Reported by Simon Jantsch and David Müller.

* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite wihtout assuming
that the product of two accepting SCCs is accepting,  Also use
the result of is_accepting_scc()/is_rejectng_scc() when available.
* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make it
possible to check the acceptance of a unique SCC.
* tests/core/unambig.test: Add more test cases.
2018-04-15 21:30:31 +02:00
Alexandre Duret-Lutz
befdb03c9a * debian/rules: Disable valgrind. 2018-04-10 14:14:08 +02:00
Alexandre Duret-Lutz
978cebe606 is_unambiguous: fix false negatives
Reported by Simon Jantsch and David Müller.

* tests/core/unambig.test: Test the issue.
* spot/twaalgos/isunamb.cc: Fix it.
* NEWS: Mention it.
* THANKS: Add Simon.
2018-04-09 10:38:23 +02:00
Alexandre Duret-Lutz
e2a71cba38 org: fix broken links
* doc/org/upgrade2.org, doc/org/ioltl.org, doc/org/concepts.org: Here.
* doc/org/tut51.org: Fix example output.
2018-04-09 10:37:54 +02:00
Alexandre Duret-Lutz
8add81824a gitlab-ci: skip org-mode in mingw builds
* .gitlab-ci.yml: Here.
* doc/Makefile.am: Make sure the svg files are only rebuilt when org
files are processed.
2018-04-09 10:37:54 +02:00
Alexandre Duret-Lutz
568a6180f1 is_unambiguous: fix false negatives
Reported by Simon Jantsch and David Müller.

* tests/core/unambig.test: Test the issue.
* spot/twaalgos/isunamb.cc: Fix it.
* NEWS: Mention it.
* THANKS: Add Simon.
2018-04-09 10:22:49 +02:00
Alexandre Duret-Lutz
6cec43294d dot: name the digraph
* spot/twaalgos/dot.cc: Here.
* NEWS: Mention the change.
* tests/core/alternating.test, tests/core/det.test,
tests/core/dstar.test, tests/core/monitor.test,
tests/core/neverclaimread.test, tests/core/readsave.test,
tests/core/sccdot.test, tests/core/tgbagraph.test,
tests/python/_altscc.ipynb, tests/python/_autparserr.ipynb,
tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
tests/python/automata.ipynb, tests/python/decompose.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/parity.ipynb, tests/python/product.ipynb,
tests/python/randaut.ipynb, tests/python/satmin.ipynb,
tests/python/stutter-inv.ipynb, tests/python/testingaut.ipynb,
tests/python/word.ipynb: Adjust test cases.
2018-04-07 18:58:58 +02:00
Alexandre Duret-Lutz
2775b0abc8 dot: use tooltips with option "1"
Fixes #327.

* spot/twaalgos/dot.cc: Emit a tooltip="..." for state names and
labels that are disabled by option "1".
* doc/org/tut51.org, tests/python/product.ipynb, NEWS: Discuss this.
* tests/core/readsave.test, tests/python/alternation.ipynb,
tests/python/automata.ipynb: Adjust test cases.
2018-04-07 18:58:58 +02:00
Alexandre Duret-Lutz
99876048ed org: adjust to org-mode 9.1
This is needed so that SVG files are included as an <object...> rather
than as an <img...>, which in turn is needed to ensure SVG tooltips
will work.  We do not explicitly require org-mode 9.1, but we install
it if it is not present.

* HACKING: Mention the requirement.
* doc/org/.dir-locals.el.in, doc/org/init.el.in, doc/org/spot.css:
Adjust to org-mode 9.1.
* doc/Makefile.am: Run emacs with the site-lisp libraries, in
case it contains a more recent org-mode.
* elisp/ob-dot.el: Delete, this was a work around older versions.
* elisp/Makefile.am: Adjust.
2018-04-07 18:58:58 +02:00
Alexandre Duret-Lutz
309eb0bbaa org: fix broken links
* doc/org/upgrade2.org, doc/org/ioltl.org, doc/org/concepts.org: Here.
* doc/org/tut51.org: Fix example output.
2018-04-07 18:11:10 +02:00
Alexandre Duret-Lutz
be9096a5cd gitlab-ci: skip org-mode in mingw builds
* .gitlab-ci.yml: Here.
* doc/Makefile.am: Make sure the svg files are only rebuilt when org
files are processed.
2018-04-07 18:11:10 +02:00
Alexandre Duret-Lutz
af6b09408a python: make sure spot.automata() terminates the command
Fixes #341.

* python/spot/__init__.py (automata): Rewrite and simplify using
the subprocess context manager.
* tests/python/341.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the issue.
2018-04-03 16:40:16 +02:00
Alexandre Duret-Lutz
cbfbf53617 python: make sure spot.automata() terminates the command
Fixes #341.

* python/spot/__init__.py (automata): Rewrite and simplify using
the subprocess context manager.
* tests/python/341.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the issue.
2018-04-03 15:12:58 +02:00
Alexandre Duret-Lutz
6afc2d45e0 complete reference to Esparza/Křetínský/Sickert LICS'18 paper
* NEWS, bin/man/spot-x.x, bin/spot-x.cc, spot/twaalgos/gfguarantee.hh:
Add the conference.
2018-04-02 16:41:45 +02:00
Alexandre Duret-Lutz
c766f58d5d sat_minimize: improve logs and document Python bindings
* spot/priv/satcommon.cc, spot/priv/satcommon.hh: Make it possible to
set the log file without setting the environment variable.  Adjust
print_log to take the input state and print it as a new column.
* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc: Adjust all
calls to print_log.  Fix log output for incremental approaches.
Prefer purge_unreachable_states() over stats_reachable().  Do
not call scc_filter() on colored automata.
* spot/twaalgos/dtwasat.hh: Document the new "log" option.
* NEWS: Mention the changes.
* tests/python/satmin.ipynb: New file.
* tests/Makefile.am: Add it.
* doc/org/satmin.org, doc/org/tut.org: Link to it.
* doc/org/satmin.org, bin/man/spot-x.x: Adjust description
of CSV files.
* bench/dtgbasat/gen.py, bench/dtgbasat/tabl.pl,
bench/dtgbasat/tabl1.pl, bench/dtgbasat/tabl2.pl,
bench/dtgbasat/tabl3.pl, bench/dtgbasat/tabl4.pl: Adjust for
the new column.
* spot/misc/satsolver.cc, spot/misc/satsolver.hh (stats): Make it
const.
* python/spot/__init__.py (sat_minimize): Add display_log and
return_log options.
* tests/python/ipnbdoctest.py: Adjust to not compare SAT-minimization
logs as they contain timings.
2018-03-30 18:01:59 +02:00
Alexandre Duret-Lutz
5266010889 gfguarantee: fix a typo in the code
* spot/twaalgos/gfguarantee.cc: Call is_terminal_automaton() on
the reduced automaton.
* tests/core/ltl2tgba.test: Add a test case.
2018-03-29 14:02:07 +02:00
Alexandre Duret-Lutz
85db27694a * .gitlab-ci.yml (publish-stable): Use scp instead of cp. 2018-03-28 18:22:31 +02:00
Alexandre Duret-Lutz
fc786d401a autfilt: fix --sat-minimize -B
Fixes #340.

* bin/common_post.cc: -B implies -S.
* tests/core/satmin2.test: Test this.
2018-03-28 18:22:31 +02:00
Alexandre Duret-Lutz
71fbca8b0d python: fix error message of translate()/posprocess()
* python/spot/__init__.py: Here.
* NEWS: Mention the bug.
2018-03-28 18:22:31 +02:00
Alexandre Duret-Lutz
c9716018ce * spot/twaalgos/strength.cc: Typo. 2018-03-28 18:22:31 +02:00
Alexandre Duret-Lutz
5e2a8a581a to_dca/to_nca: fix handling of co-Büchi input
* spot/twaalgos/cobuchi.cc (to_dca, to_nca): Do not process
the input if it is already co-Büchi.
* tests/core/dca.test: Test this.
* NEWS: Mention the bug.
2018-03-28 18:22:31 +02:00
Alexandre Duret-Lutz
a9bf4dfa58 work around some g++-7.3 issues
* spot/twaalgos/langmap.cc, spot/ltsmin/ltsmin.cc: Add asserts to hide
spurious "potential null pointer dereference" messages.
* spot/twaalgos/tau03opt.cc (color_ref): Initialize pc to nullptr
even when is_cyan is true so that valgrind does not report pc being
used uninitialized in is_white().
2018-03-28 18:21:54 +02:00
Alexandre Duret-Lutz
7a65bdf6bc specialized translation for GF(guarantee) and FG(safety)
This is adapted from a proposition in a paper by J. Esparza,
J. Křentínský, and S. Sickert, submitted to LICS'18.  We should add
proper references to the code and documentation once that paper is
accepted.

* spot/twaalgos/gfguarantee.cc, spot/twaalgos/gfguarantee.hh:
New files.
* spot/twaalgos/Makefile.am, python/spot/impl.i: Add them.
* spot/twa/fwd.hh: Add a forward declaration of bdd_dict_ptr.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Make it
possible to call finalize() from the translator subclass.  Constify
all the do_* functions while we are there.
* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Add
a "gf-guarantee" option to decide whether to use the new translation.
* bin/spot-x.cc: Document it.
* tests/core/dca2.test, tests/core/genltl.test,
tests/core/ltl2tgba2.test, tests/core/parity2.test,
tests/core/satmin.test, tests/python/automata.ipynb,
tests/python/sbacc.py: Adjust test cases.
* tests/python/except.py: Add a couple more tests.
2018-03-28 18:20:46 +02:00
Alexandre Duret-Lutz
89f7047925 * .gitlab-ci.yml (publish-stable): Use scp instead of cp. 2018-03-28 18:20:44 +02:00
Alexandre Duret-Lutz
82796c04ae autfilt: fix --sat-minimize -B
Fixes #340.

* bin/common_post.cc: -B implies -S.
* tests/core/satmin2.test: Test this.
2018-03-28 18:20:44 +02:00
Alexandre Duret-Lutz
ee30f96676 python: fix error message of translate()/posprocess()
* python/spot/__init__.py: Here.
* NEWS: Mention the bug.
2018-03-28 18:20:44 +02:00
Alexandre Duret-Lutz
4ac3143b53 * spot/twaalgos/strength.cc: Typo. 2018-03-28 18:20:43 +02:00
Alexandre Duret-Lutz
7957a231a1 to_dca/to_nca: fix handling of co-Büchi input
* spot/twaalgos/cobuchi.cc (to_dca, to_nca): Do not process
the input if it is already co-Büchi.
* tests/core/dca.test: Test this.
* NEWS: Mention the bug.
2018-03-28 18:20:43 +02:00
Alexandre Duret-Lutz
fc205c1883 work around some g++-7.3 issues
* spot/twaalgos/langmap.cc, spot/ltsmin/ltsmin.cc: Add asserts to hide
spurious "potential null pointer dereference" messages.
* spot/twaalgos/tau03opt.cc (color_ref): Initialize pc to nullptr
even when is_cyan is true so that valgrind does not report pc being
used uninitialized in is_white().
2018-03-27 22:25:26 +02:00
Alexandre Duret-Lutz
095d019940 Merge branch 'master' into next 2018-03-25 10:01:48 +02:00
Alexandre Duret-Lutz
a323662e8a bump version to 2.5.2.dev
* NEWS, configure.ac: Here.
2018-03-25 09:59:12 +02:00
Alexandre Duret-Lutz
2f369d74ac Release Spot 2.5.2
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2018-03-25 09:53:41 +02:00
Alexandre Duret-Lutz
006de5da70 * spot/twaalgos/ltl2taa.cc: Remove unused variable. 2018-03-24 10:04:52 +01:00
Alexandre Duret-Lutz
95ad831c40 * spot/twaalgos/ltl2taa.cc: Remove unused variable. 2018-03-24 09:55:54 +01:00
Alexandre Duret-Lutz
c476b2ee3c stutter: fix closure() on Fin-acceptance
From a report by Anton Pirogov.

* NEWS: Mention the bug.
* spot/twaalgos/stutter.cc: Fix it.
* tests/core/stutter-tgba.test: Test it.
* THANKS: Add Anton.
2018-03-23 22:21:59 +01:00
Alexandre Duret-Lutz
69a3e8486e stutter: fix closure() on Fin-acceptance
From a report by Anton Pirogov.

* NEWS: Mention the bug.
* spot/twaalgos/stutter.cc: Fix it.
* tests/core/stutter-tgba.test: Test it.
* THANKS: Add Anton.
2018-03-23 18:51:00 +01:00
Alexandre Duret-Lutz
b25ec6fe02 powerset: implement an LRU cache
* spot/twaalgos/powerset.cc: Use an LRU cache to fix #302.
2018-03-21 11:02:04 +01:00
Alexandre Duret-Lutz
56d675cc13 * doc/org/autcross.org: Typo. 2018-03-19 17:12:59 +01:00
Alexandre Duret-Lutz
0faf80fa31 * doc/org/autcross.org: Typo. 2018-03-19 15:25:37 +01:00