Commit graph

1013 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
c920825fad work around issue #317
* spot/twaalgos/cobuchi.cc: Call sbacc() on transition-based input.
* tests/Makefile.am: Remove XFAIL_TESTS.
* NEWS: Adjust.
2018-01-14 22:18:55 +01:00
Alexandre Duret-Lutz
61b0a542f1 postproc: add support for co-Büchi output
* spot/twaalgos/cobuchi.cc, spot/twaalgos/cobuchi.hh (to_nca): New
function.
(weak_to_cobuchi): New internal function, used in to_nca and to_dca
when appropriate.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
the CoBuchi option.
* python/spot/__init__.py: Support it in Python.
* bin/common_post.cc: Add support for --buchi.
* bin/autfilt.cc: Remove the --dca option.
* tests/core/dca.test, tests/python/automata.ipynb: Adjust and add
more tests.  In particular, add more complex persistence and
recurrence formulas to the list of dca.test.
* tests/python/dca.test: Adjust and rename to...
* tests/core/dca2.test: ... this.  Add more tests, to the point
that this is now failing, as described in issue #317.
* tests/python/dca.py: Remove.
* tests/Makefile.am: Adjust.
2018-01-14 22:16:40 +01:00
Alexandre Duret-Lutz
9464043d39 fix streett_to_generalized_buchi
Fixes #316.

* spot/twaalgos/totgba.cc: Fix confusing definition of scc_inf_wo_fin.
* tests/python/streett_totgba2.py: New test case.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2018-01-14 16:08:40 +01:00
Alexandre Duret-Lutz
8a74ae6c9d misc: fix some down_cast issues
We had new failure on MinGW with GCC believing that some pointer
returned by down_cast could be NULL; and the down_cast function was in
the global namespace.

* spot/misc/casts.hh: Rewrite.
* NEWS: Mention the small issues.
* tests/core/ikwiad.cc, tests/core/ngraph.cc: Adjust to use
spot::down_cast instead of down_cast.
2018-01-10 21:35:46 +01:00
Alexandre Duret-Lutz
7f5c1d3707 * NEWS: Reorganize, in preparation for the 2.5 release. 2018-01-09 16:55:55 +01:00
Alexandre Duret-Lutz
0b71df3fd3 genltl: add --gf-implies
* spot/gen/formulas.cc, spot/gen/formulas.hh: Implement
LTL_GF_IMPLIES.
* bin/genltl.cc: Add --gf-implies.
* NEWS: Mention it.
* tests/core/genltl.test: Use it.
2018-01-09 10:59:10 +01:00
Alexandre Duret-Lutz
bd6dc7a806 postproc: add support for colored-parity
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Add support
for a colored option.
* bin/common_post.cc, bin/common_post.hh bin/autfilt.cc,
bin/ltl2tgba.cc, bin/dstar2tgba.cc: Add support for --colored-parity.
* bin/ltldo.cc: Adjust as well for consistency, even if --parity and
--colored-parity is not used here.
* tests/core/parity2.test: Add tests.
* doc/org/autfilt.org, doc/org/ltl2tgba.org: Add examples.
* NEWS: Mention --colored-parity.
2018-01-08 11:35:49 +01:00
Alexandre Duret-Lutz
58e64e752c python: upgrade notebook format to v4
Fixes #311.

* tests/python/ipnbdoctest.py: Adjust to process the new format,
with a lot of inspiration from Vcsn's copy of this file.
* tests/python/_altscc.ipynb, tests/python/_aux.ipynb,
tests/python/acc_cond.ipynb, tests/python/accparse.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/formulas.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/piperead.ipynb, tests/python/product.ipynb,
tests/python/randaut.ipynb, tests/python/randltl.ipynb,
tests/python/stutter-inv.ipynb, tests/python/testingaut.ipynb,
tests/python/word.ipynb: Upgrade to the new format.
* NEWS: Mention the change.
2018-01-07 12:59:59 +01:00
Alexandre Duret-Lutz
020c981188 ltlcross: detect remove_fin failures
Fixes #314, reported by František Blahoudek.

* bin/ltlcross.cc: Here.
* tests/core/ltlcross3.test: Add new test case.
* NEWS: Mention the bug.
2018-01-06 14:08:44 +01:00
Alexandre Duret-Lutz
a924bc561a remove_fin: use simplify_acceptance
* spot/twaalgos/remfin.cc: Simplify acceptance before trying the
different strategies.
* spot/twaalgos/cleanacc.cc: Skip simplify_complementary_marks_here()
on generalized Büchi.
* tests/core/remfin.test, tests/python/tra2tba.py: Adjust.
* spot/twaalgos/totgba.cc: Simplify the result of Streett->GBA.
* NEWS: Adjust.
2018-01-06 12:48:46 +01:00
Alexandre Duret-Lutz
2feba6ad5e simplify_acceptance: fix handling of first edge
Fixes #315.

* spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Do not
compare the first edge against previous_a.
* tests/core/accsimpl.test: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
2018-01-06 09:21:23 +01:00
Alexandre Duret-Lutz
17b295e10f python: SVG display of word as signals
Fixes #309.

* python/spot/__init__.py (twa_word.as_svg, twa_word.show): New
  methods.
* tests/python/word.ipynb: Use them.
* NEWS: Mention them.
2018-01-04 18:43:12 +01:00
Alexandre Duret-Lutz
42ebf8b18c postproc: introduce --parity output
* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Add parity
  options.
* bin/common_post.cc: Add support for --parity.
* NEWS: Mention it.
* tests/core/parity2.test: New file.
* tests/Makefile.am: Add it.
2018-01-02 12:07:26 +01:00
Alexandre Duret-Lutz
0d963d5f7e Merge branch 'master' into next 2017-12-25 15:48:09 +01:00
Alexandre Duret-Lutz
9c77cb321e * NEWS, configure.ac: Bump version to 2.4.4.dev. 2017-12-25 15:46:44 +01:00
Alexandre Duret-Lutz
2f5fb47c7f Release Spot 2.4.4
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2017-12-25 15:42:03 +01:00
Alexandre Duret-Lutz
915d2f4659 sbacc: more fixes related to #312
The issue also exists with determinism.

* tests/core/sbacc.test: New test case.
* spot/twaalgos/sbacc.cc: Fix it.
* NEWS: Update.
2017-12-25 15:38:55 +01:00
Alexandre Duret-Lutz
18e65f3bc8 sbacc: fix sbacc producing complete automata marked as incomplete
Fixes #312, reported by František Blahoudek.

* spot/twaalgos/sbacc.cc: Detect the case were this can happen,
and fix it.
* tests/core/sbacc.test: New test case.
* NEWS: Mention the bug.
2017-12-25 15:38:47 +01:00
Alexandre Duret-Lutz
396024143c to_tgba: fix handling of CNF with multiple unit clauses
Fixes #313, reported by František Blahoudek.

* spot/twaalgos/totgba.cc (to_generalized_buchi): Fix it.
* tests/core/remfin.test: Test it.
* NEWS: Mention it.
2017-12-25 15:38:28 +01:00
Alexandre Duret-Lutz
ec393708bb sbacc: more fixes related to #312
The issue also exists with determinism.

* tests/core/sbacc.test: New test case.
* spot/twaalgos/sbacc.cc: Fix it.
* NEWS: Update.
2017-12-24 20:44:15 +01:00
Alexandre Duret-Lutz
95fd75940a sbacc: fix sbacc producing complete automata marked as incomplete
Fixes #312, reported by František Blahoudek.

* spot/twaalgos/sbacc.cc: Detect the case were this can happen,
and fix it.
* tests/core/sbacc.test: New test case.
* NEWS: Mention the bug.
2017-12-22 18:27:07 +01:00
Alexandre Duret-Lutz
9ec7df670e to_tgba: fix handling of CNF with multiple unit clauses
Fixes #313, reported by František Blahoudek.

* spot/twaalgos/totgba.cc (to_generalized_buchi): Fix it.
* tests/core/remfin.test: Test it.
* NEWS: Mention it.
2017-12-22 17:53:30 +01:00
Alexandre Duret-Lutz
19348c8938 python: give access to the "product-states" property
* python/spot/impl.i (get_product_states, set_product_states): New.
* tests/python/product.ipynb: Use it.
* NEWS: Mention it.
2017-12-22 17:27:26 +01:00
Alexandre Duret-Lutz
7f97c90470 Merge branch 'master' into next 2017-12-19 10:40:50 +01:00
Alexandre Duret-Lutz
696d81f651 Bump version number
* configure.ac, NEWS: Update to 2.4.3.dev.
2017-12-19 10:40:07 +01:00
Alexandre Duret-Lutz
325d3f921f Release Spot 2.4.3
* NEWS, configure.ac, doc/org/setup.org: Update.
2017-12-19 10:13:07 +01:00
Alexandre Duret-Lutz
ac80b07d93 introduce check_determinism()
* spot/twaalgos/isdet.hh, spot/twaalgos/isdet.cc (check_determinism):
New function.
* NEWS: Mention it.
* tests/python/semidet.py: New file.
* tests/Makefile.am: Add it.
2017-12-18 15:57:17 +01:00
Alexandre Duret-Lutz
62d1e0219d Add support for computing operator nesting depth
* spot/tl/hierarchy.hh, spot/tl/hierarchy.cc (nesting_depth): New
function.
* python/spot/__init__.py: Also make it a method of formula in Python
* bin/common_output.cc, bin/common_output.hh: Implement
--stats=%[OP]n.
* NEWS: Mention it.
* tests/core/format.test, tests/python/formulas.ipynb: Test it.
2017-12-10 20:31:56 +01:00
Alexandre Duret-Lutz
d967dcb155 fix ASAN reports about mismatched emplace new/delete
* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/tl/formula.cc,
spot/tl/formula.hh: Here.
* NEWS: Mention the bug.
2017-11-28 11:31:35 +01:00
Alexandre Duret-Lutz
544d63f2f2 couvreur99_new: fix two memory leaks found by ASAN
This only occurs when doing the emptiness check of twa with allocated
states.

* spot/twaalgos/couvreurnew.cc: Here.
* NEWS: Mention the bug.
2017-11-28 11:31:34 +01:00
Alexandre Duret-Lutz
7b2517a518 formula: accept additional arguments for map and traverse
Fixes #306.

* spot/tl/formula.hh, python/spot/__init__.py: Implement this
in C++ and Python.
* doc/org/tut03.org: Document (and indirectly test) it.
* NEWS: Mention it.
2017-11-23 23:04:15 +01:00
Maximilien Colange
1da0afbafe Improve ltlsynt interface
To ease debugging and testing, ltlsynt can output the synthesized
strategy as an automaton, not just an aiger circuit.
Also, its exit code has been changed to something meaningful.

* bin/ltlsynt.cc: Various improvements: options, exit code, code style
* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc,
  spot/twaalgos/Makefile.am: Move the aiger printer to separate files
* tests/core/ltlsynt.test: Clean up and update test file
* tests/Makefile.am: Add the test file to the test suite
* NEWS: document the new aiger printer
* doc/org/concepts.org: document the named property "synthesis-outputs",
  used by print_aiger
2017-11-23 14:46:50 +01:00
Alexandre Duret-Lutz
974a4238f6 introduce formula::is_leaf()
Fixes #307.

* spot/tl/formula.hh: Here.
* tests/python/ltlparse.py: Test it.
* NEWS: Mention it.
2017-11-23 13:40:05 +01:00
Alexandre Duret-Lutz
246b5d8fed doc: implement --enable-doxygen and do not distribute the doc
Fixes #299.

* configure.ac, doc/Makefile.am: Adjust.
* NEWS, HACKING, README: Document the change.
* doc/dot.in: Delete, not used anymore.
* doc/Doxyfile.in: Adjust to not look for dot.
* debian/rules: Use --enable-doxygen.
2017-11-22 16:06:04 +01:00
Alexandre Duret-Lutz
d89579321f fix ASAN reports about mismatched emplace new/delete
* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/tl/formula.cc,
spot/tl/formula.hh: Here.
* NEWS: Mention the bug.
2017-11-17 18:11:55 +01:00
Alexandre Duret-Lutz
933c4cde0c couvreur99_new: fix two memory leaks found by ASAN
This only occurs when doing the emptiness check of twa with allocated
states.

* spot/twaalgos/couvreurnew.cc: Here.
* NEWS: Mention the bug.
2017-11-17 18:11:55 +01:00
Alexandre Duret-Lutz
50fe34a55a introduce is_obligation(f)
This is not optimal yet because it still construct a minimal WDBA
internally, but it's better than the previous way to call
minimize_obligation() since it can avoid constructing the minimized
automaton in a few more cases.

* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Introduce
is_obligation().
* bin/ltlfilt.cc: Wire it to --obligation.
* spot/twaalgos/minimize.cc: Implement is_wdba_realizable(),
needed by the above.
* tests/core/obligation.test: Test it.
* bin/man/spot-x.x, NEWS: Document it.
2017-11-16 07:26:34 +01:00
Alexandre Duret-Lutz
42a94c4dbe bin: add support for SPOT_OOM_ABORT
* bin/common_setup.cc: Here.
* NEWS, bin/man/spot-x.x: Document it.
2017-11-15 14:38:07 +01:00
Alexandre Duret-Lutz
010b418583 Merge branch 'master' into next 2017-11-07 07:48:53 +01:00
Alexandre Duret-Lutz
7c8d52640e Bump version to 2.4.2.dev
* configure.ac, NEWS: Here.
2017-11-07 07:46:53 +01:00
Alexandre Duret-Lutz
ed5463cf6f Release Spot 2.4.2
* NEWS, configure.ac, doc/org/setup.org: Update.
2017-11-07 07:44:27 +01:00
Alexandre Duret-Lutz
e5a37ff98f symplify_acceptance: More rules
Fixes #297. Implement the following rules.

Fin(i) & Fin(j) by f if i and j are complementary
Fin(i) & Inf(i) by f
Inf(i) | Inf(j) by t if i and j are complementary
Fin(i) | Inf(i) by t.

* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Here.
* tests/python/merge.py: Add more test cases.
* NEWS: Mention the change.
2017-11-06 17:31:59 +01:00
Alexandre Duret-Lutz
df73b84a47 bdd_dict: remove register_all_propositions_of
* spot/twa/bdddict.cc, spot/twa/bdddict.hh: Here.
* NEWS: Mention this removal.
2017-11-05 09:43:01 +01:00
Alexandre Duret-Lutz
62302b6046 autfilt: introduce --acceptance-is
Fixes #288.

* bin/autfilt.cc: Implement it.
* spot/twa/acc.cc, spot/twa/acc.hh: Add
acc_cond::is_generalized_streett, acc_cond::operator==, and
acc_cond::operator!=.
* tests/core/randaut.test: Add some tests.
* NEWS: Mention it.
2017-11-04 21:17:59 +01:00
Alexandre Duret-Lutz
75a1d6ac61 bin: add %g options to print acceptance name
Fixes #289.

* spot/twaalgos/stats.cc, spot/twaalgos/stats.hh,
bin/common_aoutput.cc, bin/common_aoutput.hh: plug %g and %G into
acc_cond::name() when arguments are given as %[arg]g.  or %[arg]G.
* tests/core/acc2.test: Add test case.
* doc/org/randaut.org, NEWS: Document it.
2017-11-04 07:43:41 +01:00
Alexandre Duret-Lutz
bd39edde27 acc: introduce acc_cond::name()
* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::name): New method.
* spot/twaalgos/dot.cc: Use it.
* tests/python/acc_cond.ipynb: Add a small test.
* NEWS: Mention it.
2017-11-04 07:38:24 +01:00
Alexandre Duret-Lutz
4711dcd74f introduce stutter_invariant_letters()
* spot/twaalgos/stutter.cc,
spot/twaalgos/stutter.hh (stutter_invariant_letters)
(stutter_invariant_states): Get rid of the broken local variant.
* tests/python/stutter-inv.ipynb, NEWS: Document.
* python/spot/impl.i: Bind vector<bdd>.
2017-11-03 17:02:30 +01:00
Alexandre Duret-Lutz
0bbcb7f35d random: remove bmrand() and prand()
We do not need these functions in Spot.

* spot/misc/random.cc, spot/misc/random.hh (bmrand, prand): Remove.
* NEWS: Mention it.
2017-11-02 10:24:08 +01:00
Alexandre Duret-Lutz
6459877a1a overhaul the stutter-invariance checks
* spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh: Cleanup and
document the api.
* spot/twa/twa.hh, doc/mainpage.dox: Add a stutter-invariant section.
* tests/python/stutter-inv-states.ipynb: Rename as ...
* tests/python/stutter-inv.ipynb: ... this, and add more comments.
* tests/Makefile.am, doc/org/tut.org: Adjust renaming.
* bench/stutter/stutter_invariance_randomgraph.cc,
bench/stutter/stutter_invariance_formulas.cc,
bench/stutter/Makefile.am: Make it compile again.
* bin/autfilt.cc: Call inplace variants.
* NEWS: Mention the overhaul.
2017-11-01 10:35:11 +01:00
Maximilien Colange
bd739a5712 Heavily rewrite and optimize the determinization
* NEWS: document the rewrite
* spot/twaalgos/determinize.cc: lots of code optimizations
* tests/core/safra.test, tests/python/highlighting.ipynb,
  tests/python/simstate.py: Update tests
2017-10-19 14:17:55 +02:00