- 02 Jun, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
Fixes #262 again. Reported by Maximilien Colange. * spot/twaalgos/simulation.cc: Use state numbers to order classes, not their signatures. The problem was that even if two simulation of the same automaton assign the same signature, the BDD identifier used for that signature might be different, and therefore the ordering obtained by using BDDs as keys in a map can be different. A side-effect of this change is that the order of states in automata produced by simulation-based reduction may change; many tests had to be updated. * tests/core/ltl2tgba.test: Add a new test case based on Maximilien's report. * tests/core/complement.test, tests/core/det.test, tests/core/parseaut.test, tests/core/prodor.test, tests/core/scc.test, tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb, tests/python/decompose.ipynb, tests/python/decompose_scc.py, tests/python/highlighting.ipynb, tests/python/piperead.ipynb, tests/python/sccinfo.py, tests/python/simstate.py, tests/python/testingaut.ipynb, tests/python/word.ipynb: Update test case for new order of states.
-
- 31 May, 2017 4 commits
-
-
Alexandre Duret-Lutz authored
Related to #208. * spot/twaalgos/dot.cc: Fix missing definitions of universal nodes, and inclusion of universal nodes inside of SCC when none of the destination comes back to the SCC. * tests/python/_altscc.ipynb: Adjust and add more test cases. * tests/core/alternating.test, tests/core/neverclaimread.test, tests/core/readsave.test, tests/core/sccdot.test, tests/python/decompose.ipynb: Adjust test cases. * NEWS: Mention the bug.
-
Alexandre Duret-Lutz authored
* spot/twa/acc.cc, spot/twa/acc.hh: Implement the new method, and use it to implement inf_accepting(). * tests/python/accparse2.py: Add some tests.
-
Maximilien Colange authored
* NEWS: Document this. * spot/twa/twagraph.cc: `copy_state_names_from` handles this new info. * spot/twaalgos/degen.hh, spot/twaalgos/degen.cc: Implement it. * tests/python/origstate.py, tests/python/simstate.py: Update tests to reflect the change.
-
Maximilien Colange authored
* NEWS: Document the change. * spot/twaalgos/simulation.cc: Implement the change. * spot/twa/twagraph.cc: `copy_state_names_from` uses simulated states info if present. * spot/twaalgos/determinize.cc: Pretty-print in determinization follows simulated states, avoiding possible confusion. * tests/Makefile.am, tests/python/simstate.py: Add a test.
-
- 29 May, 2017 1 commit
-
-
Thomas Medioni authored
co-Büchi is now recognized as Streett-like, Büchi as Rabin-like. Also recognized Inf & Inf & Inf... as Streett-like and Fin | Fin | Fin... as Rabin-like. * spot/twa/acc.cc: Fix the bug * tests/python/rs_like.py: Add some test case
-
- 09 May, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
This is motivated by some upcoming patch by Heňo. * spot/twaalgos/sccinfo.hh (edges_of, inner_edges_of): New methods. * spot/twaalgos/sccinfo.cc, spot/twaalgos/strength.cc: Use them. * spot/twa/twagraph.hh (edge_number): Add an overload. * python/spot/impl.i: Bind the new methods. * tests/python/sccinfo.py: Add tests. * NEWS: Mention the changes.
-
- 08 May, 2017 2 commits
-
-
Alexandre Duret-Lutz authored
Fixes #260. Reported by František Blahoudek. The simplification F(f)|q = F(f|q), where q designates an event_univ formula, was not always applied because of a couple of issue: (1) the mospliter was ignoring event_univ unless favor_event_univ was set, (2) when processing formulas from res_EventUniv they were not put back into res_F or res_G to be subject to the F/G rules. * spot/tl/simplify.cc: Improve handling of the above points. * tests/core/reduccmp.test: Adjust and add test case. * tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.
-
Alexandre Duret-Lutz authored
Fixes #260. Reported by František Blahoudek. The simplification F(f)|q = F(f|q), where q designates an event_univ formula, was not always applied because of a couple of issue: (1) the mospliter was ignoring event_univ unless favor_event_univ was set, (2) when processing formulas from res_EventUniv they were not put back into res_F or res_G to be subject to the F/G rules. * spot/tl/simplify.cc: Improve handling of the above points. * tests/core/reduccmp.test: Adjust and add test case. * tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.
-
- 05 May, 2017 3 commits
-
-
Alexandre Duret-Lutz authored
Fixes #255. * spot/twaalgos/split.cc, spot/twaalgos/split.hh, tests/core/split.test: New files. * spot/twaalgos/Makefile.am, tests/Makefile.am: Add them. * bin/autfilt.cc (--split-edges): New option. * python/spot/impl.i: Process split.hh. * tests/python/alternating.py: Test split_edges() on an alternating automaton.
-
Alexandre Duret-Lutz authored
* spot/twa/twagraph.cc, spot/twa/twagraph.hh (format_state): Honor the state-names and product-states properties. * tests/python/highlighting.ipynb: Adjust.
-
Alexandre Duret-Lutz authored
* spot/twa/twagraph.cc, spot/twa/twagraph.hh: Here. Also make sure "original-states" survives defrag_states(). * NEWS: Mention it. * tests/python/origstate.py: New file. * tests/Makefile.am: Add it.
-
- 01 May, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
Fixes #233, although more cleanup would be welcome. * spot/twaalgos/minimize.cc: Replace the uses of twa methods by twa_graph methods, and simplify some data structures. * tests/core/acc_word.test, tests/core/readsave.test, tests/python/automata.ipynb: Adjust changed output due to different data structures.
-
- 28 Apr, 2017 5 commits
-
-
Alexandre Duret-Lutz authored
* spot/gen/automata.cc: Set more properties. * tests/python/gen.py: Check that they are set.
-
Alexandre Duret-Lutz authored
* spot/gen/automata.cc, spot/gen/automata.hh: Define AUT_L_NBA. * bin/genaut.cc (--l-nba): New option. * bin/man/genaut.x, doc/org/genaut.org, NEWS: Document it. * tests/python/gen.py, tests/core/genaut.test: Test it.
-
Alexandre Duret-Lutz authored
* spot/gen/automata.hh (aut_pattern): Add the dict argument. * spot/gen/automata.cc, python/spot/gen.i: Adjust. * tests/python/gen.py: Make sure two automata built without specifying any dictionary share the same one.
-
Alexandre Duret-Lutz authored
* spot/gen/automata.hh, spot/gen/automata.cc: Hide ks_cobuchi() behind introduce aut_pattern(), as we have already done for the formulas. * bin/genaut.cc: Simplify using this interface. * python/spot/gen.i: Introduce aut_patterns(). * tests/python/gen.ipynb, tests/python/gen.py: Adjust.
-
Alexandre Duret-Lutz authored
This helps with autocompletion in IPython, and it will prevent us from mixing LTL patterns with automata patterns (once we have more than one automata generator). * spot/gen/formulas.hh: Here. * spot/gen/formulas.cc, bin/genltl.cc, tests/python/gen.ipynb, tests/python/gen.py: Adjust.
-
- 26 Apr, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
* spot/gen/formulas.hh, spot/gen/formulas.cc (genltl): Rename as... (ltl_pattern): This. (ltl_pattern_max): New function. * bin/genltl.cc: Adjust names, and simplify using ltl_pattern_max(). * python/spot/gen.i (ltl_patterns): New function. * tests/python/gen.py: Test it. * tests/python/gen.ipynb: New file to document the spot.gen package. * tests/Makefile.am, doc/org/tut.org: Add gen.ipynb.
-
- 25 Apr, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
Fixes #254. * spot/gen/formulas.cc, spot/gen/formulas.hh: New files. * spot/gen/Makefile.am: Add them. * spot/Makefile.am: Fix build order. * bin/genltl.cc: Move most code to the above files and adjust. * bin/Makefile.am: Link genltl with libspotgen. * doc/org/arch.tex: Adjust picture to show that genltl uses libspotgen. * python/spot/gen.i: Include formulas.hh. * tests/python/gen.py: Make sure genltl() and ltl_pattern_name() can be called.
-
- 24 Apr, 2017 1 commit
-
-
Maximilien Colange authored
* tests/python/gen.py: implement the check.
-
- 23 Apr, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
For #254. * python/spot/gen.i, tests/python/gen.py: New files. * python/Makefile.am, tests/Makefile.am: Adjust. * NEWS: Mention the spot.gen python package.
-
- 21 Apr, 2017 1 commit
-
-
Thomas Medioni authored
Adds the method spot::acc_cond::is_streett_like() that behaves like spot::acc_cond::is_streett() except that it works on a wider range of acceptance conditions, called Streett-like. Also adds spot::acc_cond::streett_like_pairs() that returns a boolean assessing whether the acceptance condition is Streett-like and also returns all the Streett_like pairs. Defines the new struct type spot::acc_cond::rs_pair. Similarily, Adds the methods spot::acc_cond::is_rabin_like() and spot::acc_cond::rabin_like_pairs(). * NEWS: Mention this modification * python/spot/impl.i: Declares the new struct to SWIG, and defines the streett_like_pairs() vector as an output parameter, which makes the python code return a tuple (boolean, vector) rather than a pass-by-reference vector. * spot/twa/acc.cc, spot/twa/acc.hh: Declares an implements the new methods and the new nested struct. * tests/Makefile.am: Add new tests to the suite * tests/python/rs_like.py: Tests the new methods and the SWIG bindings.
-
- 20 Apr, 2017 1 commit
-
-
Thomas Medioni authored
spot::mark_t::sets() was modified so that it now returns an iterable object rather than an std::vector<unsigned>. * NEWS: Mention the modification. * python/spot/impl.i: Declares mark_container as iterable to SWIG. * spot/parseaut/parseaut.yy: Adapts to the modification. * spot/twa/acc.hh: Implement the modification. * tests/python/acc_cond.ipynb: Adapts to the modification.
-
- 07 Apr, 2017 2 commits
-
-
Thomas Medioni authored
* NEWS: Mention of the deprecation * bench/stutter/stutter_invariance_randomgraph.cc, bin/autfilt.cc, bin/ltlcross.cc, spot/twaalgos/langmap.cc, spot/twaalgos/minimize.cc, spot/twaalgos/powerset.cc, spot/twaalgos/stutter.cc, tests/core/ikwiad.cc, tests/python/bugdet.py, tests/python/remfin.py, tests/python/sum.py: Refactor calls to dtwa_complement() with calls to dualize(). * doc/org/upgrade2.org: Change mention of dtwa_complement with dualize. * spot/twaalgos/complement.hh: Add deprecation notice. * python/spot/impl.i: Add deprecation notice for the python bindings.
-
Thomas Medioni authored
* NEWS: Mention the implementation * python/spot/impl.i: Add dualize() to python interface. * spot/twaalgos/Makefile.am: Add dualize.cc,hh to the build * spot/twaalgos/dualize.cc: Implement dualize() that takes an automaton and returns its dual * spot/twaalgos/dualize.hh: Implement dualize() * tests/Makefile.am: Add dualize tests to the test suite * tests/python/dualize.py: Test cases for dualize
-
- 31 Mar, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
* tests/python/ipnbdoctest.py: Use importlib instead of imp. * tests/python/ltlparse.py: Fix invalid escape sequence.
-
- 29 Mar, 2017 3 commits
-
-
Alexandre Duret-Lutz authored
* tests/python/ipnbdoctest.py: Use importlib instead of imp. * tests/python/ltlparse.py: Fix invalid escape sequence.
-
Alexandre Duret-Lutz authored
The algorithm had two problems: it was removing only useless destination from universal destination (instead of removing the entire edge), and it was not properly iterating over the entire reachable automaton. * spot/twa/twagraph.cc: Fix it. * spot/twa/twagraph.hh: Adjust documentation. * tests/core/alternating.test: Add more tests. * tests/python/twagraph.py: Adjust. * NEWS: Mention the bug.
-
Alexandre Duret-Lutz authored
The algorithm had two problems: it was removing only useless destination from universal destination (instead of removing the entire edge), and it was not properly iterating over the entire reachable automaton. * spot/twa/twagraph.cc: Fix it. * spot/twa/twagraph.hh: Adjust documentation. * tests/core/alternating.test: Add more tests. * tests/python/twagraph.py: Adjust. * NEWS: Mention the bug.
-
- 27 Mar, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
For #212. * spot/twa/twa.hh: Rename prop_deterministic() as prop_universal(), and keep the old name as deprecated. * spot/twaalgos/isdet.cc, spot/twaalgos/isdet.hh: Rename is_deterministic() as is_universal(), and add a new function for is_deterministic(). * doc/org/concepts.org, doc/org/hoa.org, doc/org/tut21.org, spot/tl/hierarchy.cc, spot/twa/twagraph.cc, spot/twaalgos/are_isomorphic.cc, spot/twaalgos/determinize.cc, spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc, spot/twaalgos/minimize.cc, spot/twaalgos/postproc.cc, spot/twaalgos/product.cc, spot/twaalgos/randomgraph.cc, spot/twaalgos/remfin.cc, spot/twaalgos/simulation.cc, spot/twaalgos/totgba.cc, spot/twaalgos/word.cc, tests/python/product.ipynb, tests/python/remfin.py: Adjust. * NEWS: Mention the change.
-
- 22 Mar, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
* spot/parsetl/parsetl.yy: Adjust one diagnostic. * spot/parsetl/scantl.ll: Fix recovering of missing closing brace in lenient mode. * tests/python/ltlparse.py: Add tests. * NEWS: Mention the lenient mode bug.
-
- 20 Mar, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
* spot/twa/twa.hh: Add support. Make two constructors for prop_set in order to diagnose constructions with 5 arguments. * spot/parseaut/parseaut.yy: Adjust diagnostics for complete and deterministic. * spot/tl/exclusive.cc, spot/twa/twagraph.cc, spot/twaalgos/alternation.cc, spot/twaalgos/complete.cc, spot/twaalgos/complete.hh, spot/twaalgos/degen.cc, spot/twaalgos/determinize.cc, spot/twaalgos/hoa.cc, spot/twaalgos/isdet.cc, spot/twaalgos/mask.cc, spot/twaalgos/minimize.cc, spot/twaalgos/product.cc, spot/twaalgos/remfin.cc, spot/twaalgos/remprop.cc, spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc, spot/twaalgos/simulation.cc, spot/twaalgos/strength.cc, spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc, tests/core/parseaut.test, tests/python/product.ipynb: Adjust. * NEWS, doc/org/concepts.org, doc/org/hoa.org, doc/org/tut21.org: Document it.
-
- 15 Mar, 2017 1 commit
-
-
Alexandre Duret-Lutz authored
* spot/parsetl/parsetl.yy: Adjust one diagnostic. * spot/parsetl/scantl.ll: Fix recovering of missing closing brace in lenient mode. * tests/python/declenv.py: Move some tests... * tests/python/ltlparse.py: ... here, and add many more. * NEWS: Mention the lenient mode bug.
-
- 10 Mar, 2017 2 commits
-
-
Alexandre Duret-Lutz authored
* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc, spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance condition is not satisfied. * tests/python/misc-ec.py: New file. * tests/Makefile.am: Add it. * NEWS: Mention the change.
-
Alexandre Duret-Lutz authored
* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc, spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance condition is not satisfied. * tests/python/misc-ec.py: New file. * tests/Makefile.am: Add it. * NEWS: Mention the change.
-
- 09 Mar, 2017 2 commits
-
-
Alexandre Duret-Lutz authored
* python/spot/impl.i: Here. * tests/python/declenv.py: New file. * tests/Makefile.am: Add it.
-
Thomas Medioni authored
Fixes #231. * NEWS: Mention of implementation of sum, sum_and. * bin/autfilt.cc: Add --sum, --sum-or and --sum-and options. * python/spot/impl.i: Add bindings for sum, sum_and. * spot/twaalgos/Makefile.am: Add sum.cc, sum.hh. * spot/twaalgos/sum.cc: Implement sum, sum_and. * spot/twaalgos/sum.hh: Declaration of sum, sum_and. * tests/Makefile.am: Add sum tests. * tests/core/explsum.test: Test the sum of two automatons, false or false, unsatisfied mark propagation, handling of univ. transitions. * tests/python/sum.py: Check that two automatons that does not share their bdd dict are not accepted, then run tests over the sum of randomly generated LTL formulas.
-
- 08 Mar, 2017 2 commits
-
-
Alexandre Duret-Lutz authored
* doc/org/upgrade2.org, tests/python/prodexpt.py, tests/python/product.ipynb, NEWS: Fix typos. * tests/sanity/style.test: Add a check for this.
-
Alexandre Duret-Lutz authored
Follow-up to an email from Ayrat Khalimov. * python/spot/impl.i: Include twa/formula2bdd.hh. * python/spot/__init__.py: Make the dictionnary optional. * spot/twa/formula2bdd.cc: Throw an exception instead of asserting. * tests/python/bdditer.py: New file. * tests/Makefile.am: Add it. * NEWS: Update.
-