Commit graph

842 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
9e7e6d50fb formula: b* is siSERE
Since b[+] and [*0] are siSERE, b* is siSERE as well.
Suggested by Victor Khomenko.

* spot/tl/formula.cc: Implement that for Star and also
in the concatenation rule.
* tests/core/kind.test, tests/core/ltlfilt.test: Adjust.
2019-04-26 22:14:19 +02:00
Alexandre Duret-Lutz
897925975b formula: fix syntactic-SI detection for ; operator
Reported by Victor Khomenko.

* spot/tl/formula.cc: Rewrite the siPSL detection for ";".
* tests/core/ltlfilt.test: Add more tests.
* tests/core/kind.test: Adjust.
* NEWS: Mention the bug.
2019-04-26 16:21:12 +02:00
Alexandre Duret-Lutz
38f0cfd4c0 formula: fix syntactic-SI detection for ; operator
Reported by Victor Khomenko.

* spot/tl/formula.cc: Rewrite the siPSL detection for ";".
* tests/core/ltlfilt.test: Add more tests.
* tests/core/kind.test: Adjust.
* NEWS: Mention the bug.
2019-04-26 16:20:48 +02:00
Alexandre Duret-Lutz
7300488a24 fix "requires separate Inf and Fin sets" error from ltl2tgba -G
Report from David Müller.

* spot/twaalgos/simulation.cc: Add wrapper to deal with automata
sharing Fin/Inf sets.
* tests/core/ltl2tgba2.test: New test cases.
* NEWS: Mention the change.
2019-04-26 11:49:15 +02:00
Alexandre Duret-Lutz
b928d8c82a fix "requires separate Inf and Fin sets" error from ltl2tgba -G
Report from David Müller.

* spot/twaalgos/simulation.cc: Add wrapper to deal with automata
sharing Fin/Inf sets.
* tests/core/ltl2tgba2.test: New test cases.
* NEWS: Mention the change.
2019-04-26 11:48:31 +02:00
Alexandre Duret-Lutz
26e2f9cec8 sepsets: fix infinite loop
* tests/core/sepsets.test: New test case.
* spot/twaalgos/sepsets.cc: Fix the code.
* NEWS: Mention the problem.
2019-04-26 11:48:31 +02:00
Alexandre Duret-Lutz
48ecb903c5 sepsets: fix infinite loop
* tests/core/sepsets.test: New test case.
* spot/twaalgos/sepsets.cc: Fix the code.
* NEWS: Mention the problem.
2019-04-26 11:35:55 +02:00
Alexandre Duret-Lutz
84fa824f7e twa: make sure intersection_run and intersection_word use genem
* spot/twa/twa.cc (accepting_word, intersecting_run,
intersecting_word): Refactor.
* tests/python/contains.ipynb: Adjust.
2019-04-25 21:06:30 +02:00
Alexandre Duret-Lutz
fd073d1df9 tests: fix some examples
Reported by František Blahoudek.

* tests/python/parity.ipynb: Fix examples and improve some text.
2019-04-18 14:51:05 +02:00
Alexandre Duret-Lutz
e6c8c09fd5 tests: fix some examples
Reported by František Blahoudek.

* tests/python/parity.ipynb: Fix examples and improve some text.
2019-04-18 14:41:03 +02:00
Alexandre Duret-Lutz
8c99cffac7 tests: try to work around some frequent time outs in our checks
* tests/python/ipnbdoctest.py: Augment time limits.
2019-04-17 17:26:43 +02:00
Alexandre Duret-Lutz
0c8e6a38a8 tests: try to work around some frequent time outs in our checks
* tests/python/ipnbdoctest.py: Augment time limits.
2019-04-14 22:58:25 +02:00
Alexandre Duret-Lutz
d65ceb0bc8 bin: prefer posix_spawn over fork+exec
* configure.ac: Test for <spawn.h>.
* bin/common_trans.cc: Use posix_spawn when available.
* NEWS: Mention the change.
* tests/core/ltldo.test: Adjust expected error message.
2019-04-14 15:07:48 +02:00
Alexandre Duret-Lutz
0623965b43 genem: improve handling of co-Büchi
* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make sure
scc_and_mark_filter does not install a filter if there is nothing
to filter.
* tests/python/genem.py, spot/twaalgos/genem.cc,
python/spot/impl.i: Adjust.
2019-04-12 23:14:29 +02:00
Alexandre Duret-Lutz
2178684528 sccinfo: rename scc_info(x,opt) into scc_info_with_options(x,opt)
* spot/twaalgos/sccinfo.hh, python/spot/impl.i: Here.  This avoid
ambiguities where options (integer in Python) are interpreted as
initial states.
* tests/python/genem.py: Adjust.
2019-04-11 18:06:00 +02:00
Alexandre Duret-Lutz
948f99bc4e complement: add a complement() function
* spot/twaalgos/complement.cc,
spot/twaalgos/complement.hh (complement): New function.
* bin/autfilt.cc, spot/twa/twa.cc, spot/twaalgos/contains.cc,
spot/twaalgos/powerset.cc, spot/twaalgos/stutter.cc: Use it.
* tests/core/complement.test: Adjust.
* NEWS: Mention it.
2019-04-07 15:48:06 +02:00
Alexandre Duret-Lutz
4bb4aeb372 simulation: fix commit 8959eabad
* spot/twaalgos/simulation.cc: Restrict common_in marks to current SCC
when pushing them, otherwise weak automata might become inherently
weak.
* tests/core/sim3.test: Add test case.
2019-04-07 15:27:55 +02:00
Alexandre Duret-Lutz
e70f9d5723 remove_alternation: fix serious typo
Fixes #382.

* spot/twaalgos/alternation.cc: Here.
* tests/python/alternation.ipynb: Add test case.
* NEWS: Mention it.
2019-04-02 23:21:36 +02:00
Alexandre Duret-Lutz
e340e61f24 bin: fix handling of \r\n with %>
Fix issue #380.

* bin/common_finput.cc: Erase a trailing \r.
* tests/core/ltl2tgba2.test: Test it.
* NEWS: Mention the fix.
2019-04-02 23:21:36 +02:00
Alexandre Duret-Lutz
628364909d dot: add option 'g'
* spot/twaalgos/dot.cc: Implement support for hidding labels.
* tests/core/readsave.test: Test it.
* bin/common_aoutput.cc: Add --help text.
* NEWS: Mention it.
2019-03-31 22:21:24 +02:00
Alexandre Duret-Lutz
55db24e00e scc_info: introduce scc_and_mark_filter
* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Here.
* spot/twaalgos/genem.cc: Use it.
* python/spot/impl.i, python/spot/__init__.py: Add bindings.
* tests/python/genem.py: Test it.
* NEWS: Mention it.
2019-03-30 12:09:32 +01:00
Alexandre Duret-Lutz
0d9c81a6d9 acc: extend top_disjuncts and top_conjuncts to acc_cond as well
* spot/twa/acc.hh, spot/twa/acc.cc: Implement the new methods.
* python/spot/impl.i: Add bindings for vectors of acc_cond.
* tests/python/acc_cond.ipynb: Test the two methods.
* NEWS: Adjust.
2019-03-29 11:41:52 +01:00
Alexandre Duret-Lutz
01edf4f8e1 minimize_obligation: complement very weak automata if needed
Fixes #379.

* spot/twaalgos/minimize.cc: Here.
* tests/core/optba.test: Add test case provided by Rüdiger Ehlers.
* NEWS: Mention the improvement.
2019-03-22 22:20:00 +01:00
Alexandre Duret-Lutz
ef106e2860 remove_alternation: fix serious typo
Fixes #382.

* spot/twaalgos/alternation.cc: Here.
* tests/python/alternation.ipynb: Add test case.
* NEWS: Mention it.
2019-03-22 22:16:02 +01:00
Alexandre Duret-Lutz
510a18b156 acc: introduce top_conjuncts() and top_disjuncts()
* spot/twa/acc.cc, spot/twa/acc.hh: Add the new functions.
* python/spot/impl.i: Add bindings.
* tests/python/acc_cond.ipynb: Add tests.
* NEWS: Mention it.
2019-03-22 13:50:05 +01:00
Alexandre Duret-Lutz
55c50c65c8 autfilt: add support for --highlight-accepting-run
Fixes #381.

* bin/autfilt.cc: Here.
* tests/core/highlightstate.test: Test it.
* NEWS: Mention it.
2019-03-20 21:47:32 +01:00
Alexandre Duret-Lutz
7af47c7db5 bin: fix handling of \r\n with %>
Fix issue #380.

* bin/common_finput.cc: Erase a trailing \r.
* tests/core/ltl2tgba2.test: Test it.
* NEWS: Mention the fix.
2019-03-20 21:31:11 +01:00
Alexandre Duret-Lutz
af67c04a67 genem: minor simplifications
* tests/python/genem.py: Use SPOT_ON_ACC explicitely.
* spot/twaalgos/genem.cc: Do not keep track of states.  Don't
check that the clauses of the disjuncts are Fin-less: they aren't
(this was discovered while discussing with Jan and Fanda).
2019-03-19 17:26:14 +01:00
Alexandre Duret-Lutz
c25a75ea8e * tests/python/twagraph-internals.ipynb: Fix a typo. 2019-03-16 13:28:50 +01:00
Alexandre Duret-Lutz
8f7a0c2f7a python: improve kripke_graph bindings
Related to issue #376.

* spot/kripke/kripkegraph.hh: Avoid indirect type definitions for the
benefit of Swig.
* python/spot/impl.i: Add bindings for iterators over kripke_graph
states and edges.
* tests/python/kripke.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Update.
2019-03-16 13:28:45 +01:00
Alexandre Duret-Lutz
a2d940ab74 * tests/python/twagraph-internals.ipynb: Fix a typo. 2019-02-27 10:46:36 +01:00
Alexandre Duret-Lutz
8959eabad6 simulation: try pulling marks instead of pushing them for sbacc input
Suggested by František Blahoudek.

* spot/twaalgos/simulation.cc: When doing forward simulation with
state-based acceptance as input but transition-based acceptance as
output, pull acceptance marks on incoming edges instead of pushing
them to outgoing edges.
* tests/core/dra2dba.test, tests/core/exclusive-tgba.test,
tests/core/ltlcrossce.test, tests/core/satmin3.test,
tests/core/sim3.test, tests/python/satmin.ipynb: Adjust test cases.
* NEWS: Mention the change.
2019-02-27 10:46:20 +01:00
Alexandre Duret-Lutz
eb02db85da python: improve kripke_graph bindings
Related to issue #376.

* spot/kripke/kripkegraph.hh: Avoid indirect type definitions for the
benefit of Swig.
* python/spot/impl.i: Add bindings for iterators over kripke_graph
states and edges.
* tests/python/kripke.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Update.
2019-02-21 22:02:31 +01:00
Alexandre Duret-Lutz
c25a67b00d polish previous two patches
* NEWS: Update.
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh, spot/twa/twa.cc:
Update copyright years.
* spot/twa/twa.hh: Update Doxygen documentation.
* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Simplify data
structures, and fix failure of get_accepting_run() to compute
accepting runs in SCC that are accepting due to the self-loop
optimization of scc_info.
* tests/python/highlighting.ipynb: Add three test cases.
2019-02-21 15:36:19 +01:00
Clément Gillard
51ca5ecdb1 genem: Implement accepting cycle search
Implement an accepting run search in spot::sccinfo, use it with the
generic emptiness check.

* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Here.
* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Use it.
* tests/python/genem.py: Test it.
2019-02-14 16:25:25 +01:00
Clément Gillard
4ecd066c0e Several typos
* HACKING: Missing "to", extraneous 's'.
* spot/misc/timer.hh: Extraneous space.
* spot/twa/acc.hh: Extraneous 's', typos.
* spot/twaalgos/genem.hh: Typo.
* spot/twaalgos/sccinfo.cc: Fix indentation.
* spot/twaalgos/sccinfo.hh: Missing 's'.
* tests/python/acc_cond.ipynb: Extraneous 'e', missing comma.
* tests/python/decompose.ipynb: Extraneous 't'.
* tests/python/ltsmin-dve.ipynb: Extraneous verb.
2019-02-14 16:25:13 +01:00
Alexandre Duret-Lutz
f26dd904ff python: better support for explicit Kripke
Part of issue #376, reported by Hashim Ali.

* python/spot/impl.i: Add bindings for kripke_graph.
* python/spot/__init__.py (automaton): Add a want_kripke option.
* spot/kripke/kripkegraph.hh: Honnor the "state-names" property
when displaying states.
* spot/twaalgos/hoa.cc: Preserve names of Kripke states.
* tests/python/ltsmin-dve.ipynb: Illustrate all the above.
* NEWS: Mention those changes.
* THANKS: Add Hashim.
2019-02-13 17:47:53 +01:00
Alexandre Duret-Lutz
699f21b9af product_susp: fix product of state-based automata
Reported by Simon Jantsch.

* spot/twaalgos/product.cc: Here.
* tests/core/unambig2.test: New file, testing this plus
the previous patch.
* tests/Makefile.am: Add unambig2.test.
* NEWS: Mention the bug.
2019-02-02 14:41:22 +01:00
Alexandre Duret-Lutz
ea9d894d01 parsetl: better handling of MS-DOS line endings
* spot/parsetl/scantl.ll: Ignore \r.
* tests/core/lbt.test: Add a test.
* NEWS: Mention the issue.
2019-02-02 11:39:03 +01:00
Alexandre Duret-Lutz
3908cc1bca python: improve bdd_dict bindings
Fixes #372.

* python/spot/impl.i: Refactor the handling of exceptions using a
Lippincott function.  Map out_of_range to IndexError.  Add
PyObject* version for bdd_dict's register and unregister functions
so we can use Python objects as well.
* tests/python/bdddict.py: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention the changes.
2019-01-14 16:42:30 +01:00
Alexandre Duret-Lutz
98c8725d0c print_dot_psl: fix numbering of commutative operands
* spot/tl/dot.cc: Here.
* tests/python/formulas.ipynb: Add test case.
* NEWS: Mention the bug.
2018-12-17 17:09:56 +01:00
Alexandre Duret-Lutz
dc1f713391 * tests/python/stutter-inv.ipynb: Add link to on-line translator. 2018-12-13 11:22:35 +01:00
Alexandre Duret-Lutz
77f3ba9478 translate: fix stutter-invariant flag on leading Xs
Issue discovered by Mikuláš Klokočka and reported by František
Blahoudek.

* spot/twaalgos/translate.cc: Reset the stutter-invariant flag
when adding extra transitions for leading Xs.
* tests/core/stutter-tgba.test: New test case.
* NEWS: Mention the bug.
2018-12-07 15:53:54 +01:00
Alexandre Duret-Lutz
fd32ab5dd7 fix is_generalized_rabin and is_generalized_streett
* spot/twa/acc.cc: Recoginize the single-pair case.
* python/spot/impl.i: Return the vector instead of taking it
by reference.
* tests/python/setacc.py: Add test cases.
* NEWS: Mention those changes.
2018-11-08 11:35:15 +01:00
Alexandre Duret-Lutz
29e08a1afb introduce count_univbranch_states() and count_univbranch_edges()
Fixes #368, suggested by František Blahoudek.

* spot/twaalgos/isdet.cc, spot/twaalgos/isdet.hh
(count_univbranch_states(), count_univbranch_edges()): New functions.
* bin/common_aoutput.cc, bin/common_aoutput.hh: Add %u and variants.
* NEWS: Mention these.
* tests/core/alternating.test: Test them.
2018-11-08 10:33:49 +01:00
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
c3b7a691e4 python: add __repr__ for rs_pair
* spot/twa/acc.hh: Hide default constructors, so that we can have
keyword arguments on the main constructor.
* python/spot/impl.i: Add __repr__.
* tests/python/setacc.py: Test it.
2018-11-02 11:10:11 +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