Commit graph

427 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
cc00898514 fix python/dca.test for VPATH builds
* tests/python/dca.test: Do not assume the run script is in the source
directory.
2017-11-22 16:06:03 +01:00
Maximilien Colange
7066fe29e5 Fix a typo in a test
* tests/sanity/namedprop.test: fix typo for proper output
2017-11-22 11:08:39 +01:00
Alexandre GBAGUIDI AISSE
7e0fc448c5 hierarchy: Rewrite is_recurrence(), is_persistence() and add tests
* spot/tl/hierarchy.cc: Rewrite is_recurrence(), is_persistence()
* spot/tl/hierarchy.hh: Fix typo.
* tests/core/hierarchy.test: Add tests.
2017-11-21 01:20:05 +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
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
d9f8c517fa * tests/core/bdddict.cc: Trap SIGABORT so coverage works. 2017-11-05 15:37:45 +01:00
Alexandre Duret-Lutz
ba5a89a620 tests: add a test for bdd_dict::assert_emptiness()
This improves the coverage for bdd_dict::assert_emptiness() and
bdd_dict::dump().

* tests/core/bdddict.cc, tests/core/bdddict.test: New files.
* tests/Makefile.am, tests/core/.gitignore: Adjust.
2017-11-05 11:17:56 +01:00
Alexandre Duret-Lutz
0f26125f08 acc::name(): recognize generalized Streett
* spot/twa/acc.cc: Implement this.
* tests/python/randaut.ipynb: Adjust.
2017-11-05 09:26:18 +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
3334d37bb5 acc::name(): recognize Fin-less acceptance
* spot/twa/acc.cc: Implement this.
* tests/python/automata.ipynb, tests/python/randaut.ipynb,
tests/python/stutter-inv.ipynb: Adjust.
2017-11-04 12:44:43 +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
f84ca9995c test the SPOT_SATSOLVER envvar
* tests/core/satmin3.test: New file.
* tests/Makefile.am: Add it.
* spot/misc/satsolver.cc: Cleanup error messages.
* spot/misc/satsolver.hh (satsolver_get_solution): Remove this unused
function.
* tests/core/readsat.cc, tests/core/readsat.test: Delete (unused).
* tests/Makefile.am: Adjust.
2017-11-02 20:13:58 +01:00
Alexandre Duret-Lutz
161bb0675f test the SPOT_BDD_TRACE envvar
* tests/core/bdd.test: New file.
* tests/Makefile.am: Add it.
2017-11-02 11:12:38 +01:00
Alexandre Duret-Lutz
74215eaa4a parseaut: improve coverage
* tests/core/parseaut.test: Add more tests.
2017-11-01 20:34:01 +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
Alexandre Duret-Lutz
fcccd5f425 ltlcross: add support for --reference translators
Suggested by Tobias Meggendorfer.  Fixes #295.

* bin/ltlcross.cc, bin/common_trans.hh, bin/common_trans.cc: Implement
this --reference option.
* NEWS, doc/org/ltlcross.org: Document it.
* tests/core/ltlcross3.test: Test it.
2017-10-15 19:35:28 +02:00
Alexandre Duret-Lutz
ddaaf2c1c8 man: mention ltlsynt in spot(7)
Fixes #292.

* bin/man/spot.x, bin/spot.cc: Add missing cross references.
* tests/sanity/bin.test: Add safety checks so we do not forget
again.
2017-10-15 12:22:22 +02:00
Alexandre Duret-Lutz
183ec1fb4e ltlcross, autcross, ltldo: support --fail-on-timeout
Suggested by Tobias Meggendorfer.  Fixes #294.

* bin/autcross.cc, bin/ltlcross.cc, bin/ltldo.cc: Add the option.
* tests/core/autcross3.test, tests/core/ltlcross3.test,
tests/core/ltldo.test: Test it.
* tests/Makefile.am: Add autcross3.test.
* NEWS, doc/org/autcross.org, doc/org/ltlcross.org, doc/org/ltldo.org:
Mention the option.
* THANKS: Add Tobias.
2017-10-15 12:22:15 +02:00
Alexandre Duret-Lutz
0a2bca1377 simplify: improve the logic of some implication checks
Fixes #293.

* spot/tl/simplify.cc: Test implications that would yield tt or ff
first.  In rules of the form "if a => b, a op b = b" also check
if b => a, and in this case return smallest(a,b).
* tests/core/reduccmp.test: Add a test.
* NEWS: Mention it.
2017-10-15 10:07:14 +02:00
Alexandre Duret-Lutz
689aa7fdc0 translate: add support for -x tls-impl=N
This is long overdue, and we probably want to use tls-impl=1 in
ltlsynt.

* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh:
Add support for tls-impl=N.
* tests/core/ltl2tgba.test: Test it.
* bin/spot-x.cc, NEWS: Document it.
2017-10-13 07:42:48 +02:00
Alexandre Duret-Lutz
9b18729721 stutter: detect stutter-invariance at the state level
* spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh: Implement
stutter-invariance detection at the state level.
* python/spot/impl.i: Instantiate std::vector<bool>
* tests/python/stutter-inv-states.ipynb: New file.
* tests/Makefile.am, doc/org/tut.org: Add it.
2017-10-11 15:01:29 +02:00
Alexandre Duret-Lutz
b4963a7a6c genaut: fix ks_nca
* spot/gen/automata.cc (ks_nca): The output is complete.
* tests/core/genaut.test: Add test.
* NEWS: Mention the bug.
2017-10-11 14:36:33 +02:00
Alexandre Duret-Lutz
33af116fb8 ltldo: add support for -n
Fixes #287.

* bin/ltldo.cc: Implement it.
* tests/core/ltldo.test: Test it.
* NEWS: Mention the new feature.
2017-10-05 17:17:57 +02:00
Alexandre Duret-Lutz
f0dc9d44c9 tests: speed up two slow tests
These were the most expansive tests, each taking more than 5min.
This should bring them back below 1min.

* tests/core/parity.test: Do not run through valgrind.
* tests/python/toweak.py: Remove one very long case.
2017-09-29 11:06:15 +02:00
Alexandre Duret-Lutz
900b344c9a degen: detect superfluous SCCs and remove them
Suggested by Maximilien Colange.

* spot/twaalgos/degen.cc: If the output has more SCC than the input,
detect useless SCCs and remove them.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
spot/twaalgos/degen.hh: Add support for a degen-remscc option.
* bin/spot-x.cc, NEWS: Document it.
* tests/core/degenscc.test: New file.
* tests/Makefile.am: Add it.
* tests/core/det.test: Lower some expected size (yay!).
2017-09-29 11:06:01 +02:00
Alexandre Duret-Lutz
ce5e3b654f simulation: incorrect setting of non-deterministic property
Fixes #286.

* spot/twaalgos/simulation.cc: Only set the deterministic
property, not the non-deterministic one.
* tests/core/ltl2tgba.test: Add test case.
* NEWS: Mention the issue.
2017-09-28 20:47:47 +02:00
Thibaud Michaud
a13a4e7d23 remove universal transitions on the fly
* spot/twaalgos/alternation.cc, spot/twaalgos/alternation.hh: Implement
remove_univ_otf.
* tests/python/alternating.py: Test it.
* python/spot/impl.i: Bindings.
* NEWS: Document it.
2017-09-27 19:30:42 +02:00
Alexandre Duret-Lutz
a2cbf0af3a sanity: also check the 80-column limit in bin
* tests/sanity/80columns.test: Check bin sources.
* bin/ltlsynt.cc: Fix it.
2017-09-26 21:46:42 +02:00
Alexandre Duret-Lutz
69daf9c261 bin: make sure that all options are in a named section
This also fixes some empty lines and unsorted options
that appeared in some tools.

* tests/sanity/bin.test: Ensure this is done.
* bin/README: Add a new paragraph about this.
* bin/autcross.cc, bin/ltlcross.cc: Move the
output options in their own section.
* bin/common_color.cc: Assume color options are
in group -15.
* bin/common_finput.cc, bin/common_finput.hh:
Add a headless variant.
* bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc,
bin/randaut.cc, bin/randltl.cc:  Do not force the
children groups, so that the options are correctly sorted.
* bin/ltlsynt.cc: Add missing groups.
2017-09-26 21:28:16 +02:00
Alexandre Duret-Lutz
002e6ed96b formula: fix building of {a->c[*]}
Fixes #285, reported by Florian Perlié-Long.

* NEWS: Mention the issue.
* spot/tl/formula.cc: Fix it.
* tests/core/kind.test: Document it.
* THANKS: Add Florian.
2017-09-26 17:32:54 +02:00
Alexandre Duret-Lutz
f81fb31136 streett_to_generalized_buchi: fix incorrect algorithm
Fixes #284, reported by Juraj Major.

* spot/twaalgos/totgba.cc: Fix the algorithm.
* spot/twa/acc.hh: More doc for future generations.
* tests/core/scc.test: More test cases.
* NEWS: Mention the issues.
2017-09-26 17:22:56 +02:00
Alexandre Duret-Lutz
210046e8cd tests: avoid some superfluous calls to remove_alternation()
* tests/python/toweak.py: Here.
2017-09-26 10:39:47 +02:00
Maximilien Colange
2697fcddbf Fix a bug in scc_info, and clarify documentation
* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Implement it
* tests/python/sccinfo.py: Test it
* NEWS: Document the fix
2017-09-25 15:28:33 +02:00
Thibaud Michaud
d6ae7af5f5 ltlsynt: translate winning strategy to AIGER
* bin/ltlsynt.cc: Here.
* doc/org/ltlsynt.org: Document it.
* tests/core/ltlsynt.test: Test it.
2017-09-25 12:23:47 +02:00
Laurent XU
7a11842613 parity: add spot::parity_product_or()
parity_product_or constructs the sum of two parity automata and it keeps
the parity.

* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here.
* tests/core/parity.cc: Add tests here.
2017-09-25 12:10:14 +02:00
Laurent XU
b92320cc33 parity: add spot::parity_product()
Compute the synchronized product of two parity automata, this product
keeps the parity acceptance.

* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
* tests/core/parity.cc: Add tests for spot::parity_product()
2017-09-25 12:10:14 +02:00
Laurent XU
3e650f18d9 parity: add spot::cleanup_parity_acceptance()
Merge the acceptance sets of a parity acceptance with the same priority
level to simplify this acceptance.

* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
* tests/core/parity.cc: Add tests for spot::cleanup_parity_acceptance()
2017-09-25 12:10:14 +02:00
Laurent XU
0bf0a99d6d parity: add spot::colorize_parity()
These functions colorize automata with parity acceptance. They output
parity automata.

* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
* tests/core/parity.cc: Add tests for spot::colorize_parity()
* tests/python/parity.ipynb: Add documentation about
spot::colorize_parity()
2017-09-25 12:10:14 +02:00
Laurent XU
27982fb80f parity: add spot::change_parity()
This function changes the parity acceptance of an automaton.

* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
* python/spot/impl.i: Add spot/twaalgos/parity.hh
* spot/twaalgos/Makefile.am: Add spot/twaalgos/parity.{cc,hh}
* tests/core/parity.cc, tests/core/parity.test: Add
spot::change_parity() tests
* tests/python/parity.ipynb: Add documentation about
spot::change_parity()
* tests/Makefile.am: Add tests/core/parity.{cc,hh} and
tests/python/parity.ipynb
* doc/org/tut.org: Add the html page of tests/python/parity.ipynb
2017-09-25 12:10:14 +02:00
Alexandre Duret-Lutz
5e5a69488e twa_graph: do not order BDDs by IDs in merge_edges()
Fixes #282.

* spot/misc/bddlt.hh (bdd_less_than_stable): New function.
* spot/twa/twagraph.cc (merge_edges): Use it.
* tests/core/genltl.test: Adjust, and add an extra test
for the behavior of #282.
* tests/core/complement.test, tests/core/degenid.test,
tests/core/ltldo.test, tests/core/prodor.test,
tests/core/readsave.test, tests/core/sbacc.test,
tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
tests/python/decompose.ipynb, tests/python/dualize.py,
tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
tests/python/product.ipynb, tests/python/simstate.py,
tests/python/tra2tba.py: Adjust all expected outputs.
* NEWS: Mention the bug.
2017-09-24 16:47:49 +02:00
Maximilien Colange
1689c08e09 genltl: add a new family from SYNTCOMP'2017
* bin/genltl.cc, spot/gen/formulas.cc, spot/gen/formulas.hh: Implement
  it.
* tests/core/genltl.test: Test it.
* NEWS: Document it.
2017-09-22 10:35:24 +02:00
Alexandre GBAGUIDI AISSE
f2616069be twaalgos/cobuchi: Add dnf_to_nca() method
* NEWS: Update.
* spot/twaalgos/cobuchi.hh: Declare dnf_to_nca().
* spot/twaalgos/cobuchi.cc: Implement it.
* tests/core/dca.test: Add tests.
2017-09-19 17:37:00 +01:00
Alexandre GBAGUIDI AISSE
50e99cdca7 twaalgos/totgba: Add dnf_to_streett() method
* NEWS: Update.
* spot/twaalgos/totgba.hh: Declare dnf_to_streett().
* spot/twaalgos/totgba.cc: Implement dnf_to_streett().
* bin/autfilt.cc: Add --dnf-to-streett cmd line option.
* tests/core/dnfstreett.test: Add test.
* tests/Makefile.am: Add test file.
2017-09-19 17:37:00 +01:00
Alexandre GBAGUIDI AISSE
cf18c06940 twaalgos/cobuchi: Add nsa_to_nca()
* NEWS: Update.
* spot/twaalgos/cobuchi.hh: Declare to_dca() and nsa_to_nca().
* spot/twaalgos/cobuchi.cc: Implement them.
* python/spot/impl.i: Include new file for python bindings.
* spot/twaalgos/Makefile.am: Add new file.
* bin/autfilt.cc: Add --dca command line option. This option does not
return a deterministic automaton yet, but it will.
* tests/core/dca.test: Add tests for Büchi automata.
* tests/python/dca.py: Add a python script that builds a nondet. Streett
automaton.
* tests/python/dca.test: Add tests for Streett automata.
* tests/Makefile.am: Add all tests.
2017-09-19 17:37:00 +01:00
Alexandre Duret-Lutz
7eb50bc1f8 genltl: add 4 new families from Müller & Sickert (GandALF'17)
* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc:
Implement them.
* NEWS, bin/man/genltl.x: Document them.
* tests/core/genltl.test: Add some tests.
2017-09-15 22:32:04 +02:00
Alexandre Duret-Lutz
86e61089ea * tests/core/dot2tex.test: Work around dot2tex 2.9.0. 2017-09-06 11:10:22 +02:00
Clément Gillard
ad3588420c fix typos and indentation
* bin/autfilt.cc, python/spot/__init__.py, spot/twa/twa.hh,
spot/twa/twaproduct.cc, spot/twaalgos/couvreurnew.cc,
tests/python/bugdet.py: Here.
2017-09-05 13:23:01 +02:00