Commit graph

5781 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
9d7e6386e4 python: reduce automata width to prevent overflows with Jupyter
* python/spot/__init__.py (setup): Reduce the default maximal width of
automata so that Jupyter output does not add an horizontal scroll bar
for a few pixels.
* tests/python/automata-io.ipynb: Adjust.
2020-09-17 11:21:06 +02:00
Alexandre Duret-Lutz
69c821154c postproc: add simul-max and wdba-det-max options
* NEWS, bin/spot-x.cc: Document them.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
them.
* tests/python/stutter-inv.ipynb: Adjust result.
* tests/core/minusx.test: Add test case.
2020-09-16 20:40:16 +02:00
Alexandre Duret-Lutz
a814334342 minimize_wdba: avoid memory leak
* spot/twaalgos/minimize.cc: Do not look the final/non_final hash
table when determinization is aborted.
2020-09-16 17:34:13 +02:00
Jerome Dubois
5fc026ed13 * AUTHORS: Add myself. 2020-09-16 10:23:54 +02:00
Jerome Dubois
229be9a5db python: add check for panda
* tests/python/ipnbdoctest.py: Skip test if panda is not installed.
2020-09-16 10:22:39 +02:00
Jerome Dubois
ae7d4504cd game: Add set_state_player() and get_state_player()
Fixes #424.

* python/spot/impl.i: Add implicit convertion for vector<bool>.
* spot/misc/game.cc, spot/misc/game.hh: Add set_state_player()
  and get_state_player().
* tests/python/parity.py: Test them.
2020-09-16 10:22:09 +02:00
Alexandre Duret-Lutz
0339e1fec8 * .gitlab-ci.yml: Fix images names. 2020-09-13 10:59:26 +02:00
Alexandre Duret-Lutz
64b82d25f3 i386 Debian builds need x86 builders
* .gitlab-ci.yml: split the amd64/i386 debian builds so we can tag the
latter with x86.
2020-09-12 08:10:07 +02:00
Alexandre Duret-Lutz
ef1c49dafd org: greatly reduce the size of satmin.svg
* doc/org/satmin.tex: Use a plain background color instead of some
hashed lines pattern.  This reduces the size of the resulting SVG
file from 1.9MB to 50kB after minification.
* doc/org/satmin.org: Adjust to mention autfilt.
2020-09-10 15:28:55 +02:00
Alexandre Duret-Lutz
5f253d1665 minify SVG images if possible
Fixes #422.

* HACKING: mention svgo
* doc/Makefile.am (dist-hook, stamp): Run svgo on produced SVGs.
2020-09-10 15:28:55 +02:00
Alexandre Duret-Lutz
760bde093b python: add some parity-game bindings
* python/spot/impl.i: Process game.hh.
* spot/misc/game.cc, spot/misc/game.hh: Make the output of
parity_game_solve() a solved_game object for easier manipulation in
Python.
* bin/ltlsynt.cc: Adjust usage.
* tests/python/paritygame.ipynb: New file.
* tests/Makefile.am, doc/org/tut.org: Add it.
* NEWS: Mention these bindings.
2020-09-09 15:32:44 +02:00
Alexandre Duret-Lutz
9e8a842975 game: make a propagate_players() function public
* bin/ltlsynt.cc (complete_env): Replace this function by...
* spot/misc/game.hh, spot/misc/game.cc (propagate_players): ... this
new one, hiding the "state-player" business from ltlsynt.  Also do not
create a sink states unless necessary.
* tests/core/ltlsynt.test: Adjust expected number of states.
2020-09-08 22:30:40 +02:00
Alexandre Duret-Lutz
41d088ea95 dot: add support for two-player games
* spot/twaalgos/dot.cc: Honor the "state-player" property and draw
player 1 states using diamonds.
* doc/org/hoa.org: Show an example.
* tests/core/gamehoa.test: Make sure diamond is output.
* NEWS: Mention this.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
ea9384dd4b extend HOA I/O to preserve the state-player property
* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll,
spot/twaalgos/hoa.cc: Add input and output support.
* doc/org/hoa.org: Document the HOA extension.
* bin/ltlsynt.cc: Add a --print-game-hoa option to
produce such format.
* tests/core/gamehoa.test: New file to test this.
* tests/Makefile.am: Add it.
* NEWS: Mention this new feature.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
25c75c55b1 game: git rid of the parity_game class
This class was a simple wrapper on top of twa_graph_ptr, but it's
easier to simply use a twa_graph_ptr with a "state-player" property
instead, this way we will be able to modify the automata I/O routines
to support games directly.

* spot/misc/game.cc, spot/misc/game.hh: Rewrite the solver and
pg_printer interface.
* bin/ltlsynt.cc: Adjust.
* NEWS: Mention this change.
* doc/org/concepts.org: Mention the state-player property.
2020-09-08 20:20:48 +02:00
Alexandre Duret-Lutz
6379d9889f * doc/org/spot.css: Remove margin-bottom from pre.example. 2020-09-07 16:06:47 +02:00
Alexandre Duret-Lutz
2879c1d8e2 Merge branch 'master' into next 2020-09-07 10:56:53 +02:00
Alexandre Duret-Lutz
9a3c809f10 * NEWS, configure.ac: Bump version to 2.9.4.dev. 2020-09-07 10:56:01 +02:00
Alexandre Duret-Lutz
b956bfe90f Release Spot 2.9.4
* NEWS, configure.ac, doc/org/setup.org: Bump to version 2.9.4.
2020-09-07 10:52:51 +02:00
Alexandre Duret-Lutz
46b11baf05 * .gitlab-ci.yml: Update docker images, for buildenv#1. 2020-09-03 16:24:10 +02:00
Alexandre Duret-Lutz
b0f8170055 * .gitlab-ci.yml: Update docker images, for buildenv#1. 2020-09-03 14:45:07 +02:00
Florian Renkin
33a79a34d3 Fix typo
* NEWS, spot/graph/graph.hh: here.
2020-09-02 14:13:00 +02:00
Florian Renkin
149fbb73bf configure.ac: Correct warning message
configure.ac used unintialized variable when he printed message
for enable-max-accsets

* configure.ac: here.
2020-09-02 14:12:55 +02:00
Florian Renkin
af81266877 Fix typo
* NEWS, spot/graph/graph.hh: here.
2020-09-01 17:25:31 +02:00
Florian Renkin
d2e7cdb377 configure.ac: Correct warning message
configure.ac used unintialized variable when he printed message
for enable-max-accsets

* configure.ac: here.
2020-09-01 17:19:44 +02:00
Alexandre Duret-Lutz
6f76121b89 [buddy] get rid of many recursive algorithms
This patch addresses the BuDDy part of #396,
reported by Florian Renkin and Reed Oei.

* src/kernel.c, src/kernel.h: Declare a bddrecstack and
associated macros.  Resize it when new variable are declared.
* src/cache.h: Add a BddCache_index macro.
* src/bddop.c (not_rec, apply_rec, quant_rec, appquant_rec,
support_rec, ite_rec, compose_rec, restrict_rec, satone_rec,
satoneset_rec): Rewrite using this stack to get rid of the recursion.
2020-08-05 23:25:28 +02:00
Alexandre Duret-Lutz
d7b3d05e57 minato: use bdd_ite()
* spot/misc/minato.cc: Use bdd_ite() to exercise one of the function
rewritten in the next patch, and also because that is supposedly
faster.
2020-08-03 10:39:02 +02:00
Alexandre Duret-Lutz
af108d0556 * doc/org/ioltl.org: Document prefix operators. 2020-08-03 09:27:16 +02:00
Alexandre Duret-Lutz
fd437d62f8 help2man: allow line breaks in long lists of options
* tools/help2man: Add \: after | when listing optional arguments.
This should fix a lintian warning about unbreakable long line.
2020-08-03 09:27:11 +02:00
Alexandre Duret-Lutz
ceced82c5c * debian/rules (fix-js): Adjust to newer MathJax URL. 2020-08-03 09:27:08 +02:00
Alexandre Duret-Lutz
fde9a303c4 to_parity: minor fixes
* spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
the automaton was not degeneralized.
* spot/twaalgos/toparity.hh: Typo in comment.
2020-08-03 09:27:04 +02:00
Alexandre Duret-Lutz
9e6a99dcac * spot/misc/satsolver.hh: Typo in comment. 2020-08-03 09:26:33 +02:00
Alexandre Duret-Lutz
d308728b41 argp: fix handling of very long options in --help
* lib/argp-help.c (hol_entry_help): Handle cases with option
description is larger than RMARGIN.
2020-08-03 09:26:19 +02:00
Alexandre Duret-Lutz
c49506eea7 * debian/copyright: Replace MIT by Expat. 2020-08-03 09:25:56 +02:00
Alexandre Duret-Lutz
b013077af3 doc: improve css
* doc/org/spot.css: Display input and output closer and separate them
with dash.
2020-08-03 09:25:09 +02:00
Alexandre Duret-Lutz
1a7f471a02 * tests/python/ipnbdoctest.py: Ignore matplotlib font cache messages. 2020-08-03 09:25:03 +02:00
Alexandre Duret-Lutz
94eca2ca7d * spot/twaalgos/toparity.hh: Improve documentation. 2020-08-03 09:24:25 +02:00
Alexandre Duret-Lutz
50a33cbc8c org: fix shadow of hierarchy figure
* doc/org/hierarchy.tex: Draw the shadow manually, so that it is part
of the bounding box when we extract the SVG.
2020-08-03 09:24:16 +02:00
Alexandre Duret-Lutz
2c267cac40 simplify: fix handling of keep_top_xor
Under that option, !(a ^ b) was converted
to (!a <=> !b) instead of simply (a <=> b).

* spot/tl/simplify.cc (equiv_or_xor): Improve
rewriting.
* tests/core/ltl2tgba2.test, tests/python/simstate.py: Adjust test
cases.
2020-08-03 09:23:48 +02:00
Alexandre Duret-Lutz
f179c79409 * doc/org/ioltl.org: Document prefix operators. 2020-07-31 12:05:32 +02:00
Alexandre Duret-Lutz
672e6248b8 help2man: allow line breaks in long lists of options
* tools/help2man: Add \: after | when listing optional arguments.
This should fix a lintian warning about unbreakable long line.
2020-07-29 21:30:24 +02:00
Alexandre Duret-Lutz
a8db30d676 * debian/rules (fix-js): Adjust to newer MathJax URL. 2020-07-29 15:17:47 +02:00
Alexandre Duret-Lutz
3710e8f283 to_parity: minor fixes
* spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
the automaton was not degeneralized.
* spot/twaalgos/toparity.hh: Typo in comment.
2020-07-29 15:03:46 +02:00
Alexandre Duret-Lutz
a375089e52 simplify_acceptance: generalize the complementary mark rewriting
Fixes #403.

* spot/twaalgos/cleanacc.cc (simplify_complementary_marks_here):
Assume that two colors are complementary in a broad sense, i.e., on is
present if (but not only if) the other is missing before applying
those rewritings.  Technically, this is usually not necessary, because
the changes done in #418 will cause such "covering-the-full-automaton"
pair of colors to be disjoint so complementary in a strict sense.  It
might make a difference (this is not tested) in presence of reused
colors which #418 cannot remove.  In any case, it's simply less code
to implement the broad sense.
* tests/python/toparity.py: Add test case from #403, which is
reduced to two states with recent optimizations.
2020-07-29 15:01:55 +02:00
Alexandre Duret-Lutz
0c4b701630 improve acceptance simplifications using useless colors
This fixes issue #418.

* spot/twa/acc.cc,
spot/twa/acc.hh (acc_cond::acc_code::useless_colors_patterns): New
method to detect patterns of colors allowing other colors to be added
or removed at will.
* spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Use the above
patterns to remove some useless colors from transitions and hope that
this can help simplify the acceptance condition.
* spot/twaalgos/degen.cc (propagate_marks_vector): Use the pattern to
add more colors.
* tests/core/ltl2tgba2.test: Add the test case from issue #418.
* tests/core/ltl2dstar4.test, tests/core/satmin3.test,
tests/core/sccdot.test, tests/core/sim3.test,
tests/python/automata.ipynb, tests/python/decompose.ipynb,
tests/python/merge.py, tests/python/pdegen.py, tests/python/remfin.py,
tests/python/toparity.py, tests/python/tra2tba.py: Adjust all test
cases.
* NEWS: Mention this new feature.
2020-07-28 22:26:28 +02:00
Alexandre Duret-Lutz
c341a3cabf * spot/misc/satsolver.hh: Typo in comment. 2020-07-28 22:08:47 +02:00
Alexandre Duret-Lutz
25cb7651fe cleanacc: merge algorithms dealing with included and identical sets
* spot/twaalgos/cleanacc.cc (merge_identical_marks_here, merge_mark,
included_marks): Fuse these into ...
(simplify_included_marks_here): ... this new function.
* NEWS: Mention the fix of issue #406.
2020-07-28 15:38:52 +02:00
Alexandre Duret-Lutz
a804f964d2 argp: fix handling of very long options in --help
* lib/argp-help.c (hol_entry_help): Handle cases with option
description is larger than RMARGIN.
2020-07-28 10:30:45 +02:00
Alexandre Duret-Lutz
31fd31436a * debian/copyright: Fix bricks' license, and replace MIT by Expat. 2020-07-27 21:47:28 +02:00
Alexandre Duret-Lutz
cba762a60f doc: improve css
* doc/org/spot.css: Display input and output closer and separate them
with dash.
2020-07-27 17:05:58 +02:00