Commit graph

1054 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
60296317c7 python: more conventional __repr__ for several types
* NEWS: Mention the change.
* python/spot/__init__.py: Add _repr_latex_ for twa_word, and
remove __repr__ and __str__ for atomic_prop_set.
* python/spot/impl.i: Implement __repr__ and __str__ for
atomic_prop_set.  Fix __repr__ for trival, acc_code, acc_cond,
mark_t.  Remove __repr__ for twa_run and twa_word.
* tests/python/acc_cond.ipynb, tests/python/accparse.ipynb,
tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
tests/python/bdditer.py, tests/python/contains.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltlsimple.py, tests/python/ltsmin-dve.ipynb,
tests/python/product.ipynb, tests/python/relabel.py,
tests/python/satmin.ipynb tests/python/stutter-inv.ipynb,
tests/python/word.ipynb: Adjust test cases.
* tests/python/formulas.ipynb: Add test for atomic_prop_set.
2018-11-03 07:53:26 +01:00
Alexandre Duret-Lutz
5bb9c87d4c python: fix return of is_rabin_like() and is_streett_like()
* python/spot/impl.i: Fix instantiation of vector_rs_pairs.
* tests/python/setacc.py: Add test cases.
* NEWS: Mention the bugs.
2018-10-31 19:44:19 +01:00
Alexandre Duret-Lutz
266581b272 python: fix binding of used_inf_fin_sets()
* python/spot/impl.i: Here.
* tests/python/setacc.py: Test it.
* NEWS: Mention the bug.
2018-10-31 15:48:39 +01:00
Alexandre Duret-Lutz
e0958ee7c6 python: add xargs support to translate() and postprocess()
Fixes #361.

* python/spot/__init__.py: Implement it.
* tests/python/optionmap.py: Test it.
* NEWS: Mention it.
2018-10-17 18:16:46 +02:00
Alexandre Duret-Lutz
b8e47fdc28 * NEWS: Typo in release date. 2018-10-17 14:17:05 +02:00
Alexandre Duret-Lutz
235508416c Merge branch 'master' into next 2018-10-17 09:35:24 +02:00
Alexandre Duret-Lutz
1878e75ebc bump version to 2.6.3.dev
* NEWS, configure.ac: Here.
2018-10-17 09:34:09 +02:00
Alexandre Duret-Lutz
44283adfc6 Release Spot 2.6.3
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2018-10-17 09:27:22 +02:00
Alexandre Duret-Lutz
31bcb57648 fix ltlfilt --accept-word and --reject-word
* NEWS: Mention the issue.
* bin/ltlfilt.cc: Fix test.
* tests/core/acc_word.test: Test this.
2018-10-15 21:43:47 +02:00
Alexandre Duret-Lutz
34f9fb5d68 option --low should disable gf-guarantee
Fixes #367.

* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Fix it.
* NEWS: Mention the change.
* tests/core/ltl2tgba2.test: Test this.
2018-10-15 21:43:47 +02:00
Alexandre Duret-Lutz
68a155a818 Büchi translation should not go through fg_safety_to_dca_maybe()
Fixes #366, reported by Simon Jantsch.

* spot/twaalgos/translate.cc: type_&Generic will also match if
type_==BA... use type_==Generic instead.
* tests/core/unambig.test: Add a test corresponding to Simon's report.
* NEWS: Describe the bug.
2018-10-15 21:43:47 +02:00
Alexandre Duret-Lutz
d94efe9fe1 implement is_liveness() and is_liveness_automaton()
* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh,
spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Here.
* bin/ltlfilt.cc (--liveness): New filter.
* NEWS: Mention those.
* tests/core/ltlfilt.test, tests/python/ltlsimple.py: Add test cases.
2018-10-15 21:37:31 +02:00
Alexandre Duret-Lutz
d2316b1428 fix ltlfilt --accept-word and --reject-word
* NEWS: Mention the issue.
* bin/ltlfilt.cc: Fix test.
* tests/core/acc_word.test: Test this.
2018-10-15 21:17:18 +02:00
Alexandre Duret-Lutz
58c1a968c7 option --low should disable gf-guarantee
Fixes #367.

* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Fix it.
* NEWS: Mention the change.
* tests/core/ltl2tgba2.test: Test this.
2018-10-12 14:08:54 +02:00
Alexandre Duret-Lutz
3c86f034fc Büchi translation should not go through fg_safety_to_dca_maybe()
Fixes #366, reported by Simon Jantsch.

* spot/twaalgos/translate.cc: type_&Generic will also match if
type_==BA... use type_==Generic instead.
* tests/core/unambig.test: Add a test corresponding to Simon's report.
* NEWS: Describe the bug.
2018-10-12 14:08:54 +02:00
Alexandre Duret-Lutz
82a152c38a unabbreviate: add new rules based on eventual/universal arguments
Based on a report by Simon Jantsch.  Fixes #362.

* NEWS, doc/tl/tl.tex: Mention the new rules.
* spot/tl/unabbrev.cc: Implement them.
* tests/core/unabbrevwm.test: Test them.
* tests/python/randltl.ipynb: Adjust.
2018-10-01 17:53:05 +02:00
Alexandre Duret-Lutz
0de334d783 * NEWS: Remove some items from 2.6.2. 2018-10-01 16:44:01 +02:00
Alexandre Duret-Lutz
bfdeadcdbe Merge branch 'master' into next 2018-09-28 10:31:43 +02:00
Alexandre Duret-Lutz
4b2562a33f Bump version to 2.6.2.dev
* NEWS, configure.ac: Here.
2018-09-28 10:12:36 +02:00
Alexandre Duret-Lutz
2828e229bd Release Spot 2.6.2
* NEWS, configure.ac, doc/org/setup.org: Bump version number.
2018-09-28 10:04:39 +02:00
Alexandre Duret-Lutz
438d9e6d02 * NEWS: Describe more fixed bugs. 2018-09-26 17:58:01 +02:00
Alexandre Duret-Lutz
406e3b4f22 exclusive_ap::constrain does not improve determism
Fixes #363.

* spot/tl/exclusive.cc: Fix the prop_copy() call.
* tests/core/exclusive-tgba.test: Test it.
* NEWS: Mention the issue.
2018-09-26 17:54:09 +02:00
Alexandre Duret-Lutz
87ef2822df print_dot: add xlabel to colored states if too many colors in use
Based on a report from Andreas Tollkötter.

* spot/twaalgos/dot.cc (highlight_states_show_num_): New option,
turned on implicitly when more than 8 colors are used.
* tests/core/highlightstate.test: Test it.
* NEWS: Mention it.
* THANKS: Add Andreas.
2018-09-26 17:53:56 +02:00
Alexandre Duret-Lutz
1be313ef0b get rid of the Python-based CGI translator
We now have a separate project for its replacement at
https://gitlab.lrde.epita.fr/spot/spot-web-app/

* python/ajax/: Remove directory.
* python/Makefile.am, configure.ac, README: Adjust.
* NEWS: Mention this.
2018-09-26 17:53:11 +02:00
Alexandre Duret-Lutz
eae05119e5 exclusive_ap::constrain does not improve determism
Fixes #363.

* spot/tl/exclusive.cc: Fix the prop_copy() call.
* tests/core/exclusive-tgba.test: Test it.
* NEWS: Mention the issue.
2018-09-26 11:35:19 +02:00
Alexandre Duret-Lutz
250e121a60 print_dot: add xlabel to colored states if too many colors in use
Based on a report from Andreas Tollkötter.

* spot/twaalgos/dot.cc (highlight_states_show_num_): New option,
turned on implicitly when more than 8 colors are used.
* tests/core/highlightstate.test: Test it.
* NEWS: Mention it.
* THANKS: Add Andreas.
2018-09-25 14:04:11 +02:00
Alexandre Duret-Lutz
03d9b0c2bb get rid of the Python-based CGI translator
We now have a separate project for its replacement at
https://gitlab.lrde.epita.fr/spot/spot-web-app/

* python/ajax/: Remove directory.
* python/Makefile.am, configure.ac, README: Adjust.
* NEWS: Mention this.
2018-08-11 17:33:53 +02:00
Alexandre Duret-Lutz
042591a986 * NEWS: Reorganize entries for next release. 2018-08-11 17:33:53 +02:00
Alexandre Duret-Lutz
640e54a5d9 Merge branch 'master' into next 2018-08-04 08:58:20 +02:00
Alexandre Duret-Lutz
90f529918b * NEWS, configure.ac: Bump version number. 2018-08-04 08:56:38 +02:00
Alexandre Duret-Lutz
d743674729 Release Spot 2.6.1
* NEWS, configure.ac, doc/org/setup.org: Update version number.
2018-08-04 08:54:45 +02:00
Alexandre Duret-Lutz
5c8cf1bc47 fix python bindings for spot::parsed_formula::f getter
* python/spot/impl.i: Add a typemap.
* tests/python/ltlsimple.py: Add a test case for an issue.
* NEWS: Mention the bug.
2018-08-03 08:27:35 +02:00
Alexandre Duret-Lutz
8a26744720 fix python bindings for spot::parsed_formula::f getter
* python/spot/impl.i: Add a typemap.
* tests/python/ltlsimple.py: Add a test case for an issue.
* NEWS: Mention the bug.
2018-08-02 23:05:22 +02:00
Alexandre Duret-Lutz
701a3b1c6a contains: fix the semantics
spot::contains(a, b) should test a⊇b.  It was testing a⊆b instead.

* NEWS: Mention the bug.
* spot/twaalgos/contains.cc, spot/twaalgos/contains.hh: Fix the
code and documentation.
* tests/python/contains.ipynb: Adjust description and expected
results.
* python/spot/__init__.py: Also swap the argument of
language_containment_checker.contains()
* bin/autfilt.cc: Adjust usage.
2018-08-02 13:54:17 +02:00
Alexandre Duret-Lutz
126d392355 tl: add some implication-based rewritings for "<->", "->", and "xor"
This prevents an exception from being raised if NNF is not performed
on Boolean properties and implication-based checks are used.

* NEWS: Mention the issue.
* spot/tl/simplify.cc, doc/tl/tl.tex: Add some rules.
* tests/python/ltlsimple.py: Test them.
2018-08-02 13:54:17 +02:00
Alexandre Duret-Lutz
b2e51545f9 scc_info: fix split_on_sets
* spot/twaalgos/sccinfo.cc (split_on_sets): Correctly register APs.
* tests/python/sccsplit.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2018-08-02 13:54:17 +02:00
Alexandre Duret-Lutz
79a62ae1c9 ltlfilt: introduce --suspendable
* bin/ltlfilt.cc: Add the option.
* tests/core/ltlfilt.test: Use it.
* NEWS: Mention it.
2018-08-02 13:54:17 +02:00
Alexandre Duret-Lutz
23722c031f contains: fix the semantics
spot::contains(a, b) should test a⊇b.  It was testing a⊆b instead.

* NEWS: Mention the bug.
* spot/twaalgos/contains.cc, spot/twaalgos/contains.hh: Fix the
code and documentation.
* tests/python/contains.ipynb: Adjust description and expected
results.
* python/spot/__init__.py: Also swap the argument of
language_containment_checker.contains()
* bin/autfilt.cc: Adjust usage.
2018-08-01 17:17:25 +02:00
Alexandre Duret-Lutz
4ce0d92896 tl: add some implication-based rewritings for "<->", "->", and "xor"
This prevents an exception from being raised if NNF is not performed
on Boolean properties and implication-based checks are used.

* NEWS: Mention the issue.
* spot/tl/simplify.cc, doc/tl/tl.tex: Add some rules.
* tests/python/ltlsimple.py: Test them.
2018-08-01 17:17:09 +02:00
Maximilien Colange
8d5d453efa ltlsynt: new algorithm, based on LAR
* bin/ltlsynt.cc: here
* tests/core/ltlsynt.test: test it
* NEWS: document it
2018-07-27 15:34:39 +02:00
Maximilien Colange
bd75ab5b39 ltlsynt: rework synthesis algorithms
ltlsynt now offers two algorithms: one where splitting occurs before
determinization (the historical one) and one where determinization
occurs before splitting.

* bin/ltlsynt.cc: here
* tests/core/ltlsynt.test: test it and refactor test file
* NEWS: document it
* spot/misc/game.hh, spot/misc/game.cc: remove Calude's algorithm
2018-07-27 14:22:11 +02:00
Alexandre Duret-Lutz
9f81df2cd4 scc_info: fix split_on_sets
* spot/twaalgos/sccinfo.cc (split_on_sets): Correctly register APs.
* tests/python/sccsplit.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2018-07-26 16:07:22 +02:00
Alexandre Duret-Lutz
4b8910d3f9 ltlfilt: introduce --suspendable
* bin/ltlfilt.cc: Add the option.
* tests/core/ltlfilt.test: Use it.
* NEWS: Mention it.
2018-07-25 11:18:26 +02:00
Maximilien Colange
465536d1fe translate any automaton to a parity automaton
* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: implement it,
  based on last-appearance record (LAR)
* spot/twaalgos/Makefile.am: build it
* NEWS: document it
* python/spot/impl.i: add to python bindings
* tests/Makefile.am, tests/python/toparity.py: test it
2018-07-24 14:58:53 +02:00
Alexandre Duret-Lutz
da996ecbaf use the generic emptiness check
* spot/twa/twa.cc (is_empty, intersects): Here.
* spot/twaalgos/sccinfo.cc (check_scc_emptiness): Here.
* spot/twaalgos/genem.cc: Report error if the input is alternating.
* spot/twaalgos/isunamb.cc, spot/twaalgos/sccinfo.hh: Adjust.
* NEWS: Mention the change.
2018-07-24 13:36:04 +02:00
Alexandre Duret-Lutz
d708174cfe genem: implement a generic emptiness check for twa_graph_ptr
* spot/twa/acc.cc, spot/twa/acc.hh (fin_unit, one_fin): New function.
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: New files.
* spot/twaalgos/Makefile.am: Add it.
* tests/python/genem.py: New file.
* tests/Makefile.am: Add it.
* python/spot/impl.i: Add bindings for genem.hh.
* NEWS: Mention the new function.
2018-07-24 13:36:04 +02:00
Alexandre Duret-Lutz
46590af693 more documentation for twa_graph internals
* spot/graph/graph.hh, spot/twa/twagraph.hh, spot/twa/twagraph.cc:
Implement a dump_storage_as_dot() method.
* python/spot/__init__.py (twa_graph.show_storage): New method, above
dump_storage_as_dot().
* tests/python/twagraph-internals.ipynb: New file, with documentation
about the twa_graph internals, using show_storage() to illustrate
everything.
* tests/Makefile.am, doc/org/tut.org: Add it.
* python/spot/impl.i: Add bindings for out_iterasor, demonstrated in
the Python notebook.
* spot/twa/twa.hh: Add prop_reset().  Used in the notebook.
* NEWS: Mention the new notebook and function.
* doc/org/tut50.org: Link to the notebook.
* tests/python/ipnbdoctest.py: Adjust for twa_graph_ptr being
redefined in the spot namespace.
2018-07-12 15:23:23 +02:00
Alexandre Duret-Lutz
e7aa334a71 tl: add support for X[n], F[n:m] and G[n:m]
* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document these new operators.
* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse those.
* spot/tl/formula.cc, spot/tl/formula.hh: Add constructors.
* spot/gen/formulas.cc: Use it.
* tests/core/sugar.test: New file.
* tests/Makefile.am: Add it.
2018-07-06 21:53:10 +02:00
Alexandre Duret-Lutz
db19141f7a Bump version to 2.6.0.dev
* NEWS, configure.ac: Here.
2018-07-04 17:11:24 +02:00
Alexandre Duret-Lutz
215b0dcbf0 Release Spot 2.6
* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.6.
2018-07-04 17:07:09 +02:00