Commit graph

5396 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
332f830d58 * HACKING: Update various bits. 2020-03-02 23:17:38 +01:00
Florian Renkin
6f3208a783 CAR: Correct the value of the max color of the acceptance condition
* spot/twaalgos/car.cc: Update the max_color in apply_to_Buchi.
* tests/python/car.py: Add some tests that showed this issue.
2020-02-26 15:40:52 +01:00
Florian Renkin
4b9704a072 Check that every color appears once in is_parity_max_equiv
* spot/twa/acc.cc: Now suppose that a condition cannot contain
the same mark twice to be parity equivalent.
2020-02-26 15:40:52 +01:00
Florian Renkin
f4c201c980 Correct CAR when we use apply_to_Buchi
* spot/twaalgos/car.cc: Correct the colors producted in apply_to_Buchi.
2020-02-26 15:40:52 +01:00
Florian Renkin
a62241376f Add mores cases in car.py
* tests/python/car.py: Add more combinaisons of options
when testing CAR.
2020-02-26 15:40:52 +01:00
Florian Renkin
9ec0f6bd09 fixup! IAR: Correct parity prefix
* spot/twaalgos/car.cc: Reduce the number of colors used by parity
prefix and check that it uses parity colors in apply_to_Buchi.
2020-02-26 15:40:52 +01:00
Florian Renkin
1b9acf32cf IAR: Use less colors with parity prefix and check that use parity colors
* spot/twaalgos/car.cc: Don't reserve colors when parity prefix is used
but the condition has no parity prefix and use colors of prefix in
apply_to_Buchi.
2020-02-26 15:40:16 +01:00
Florian Renkin
de8cd91e94 * AUTHORS: Add myself. 2020-02-24 15:05:40 +01:00
Florian Renkin
96531f29f2 CAR: new algorithm for paritizing
* NEWS: Mention it.
* spot/twaalgos/car.cc, spot/twaalgos/car.hh, tests/python/car.py:
New files.
* spot/twaalgos/Makefile.am, tests/Makefile.am: Add them.
* python/spot/impl.i: Include CAR.
* spot/twa/acc.cc, spot/twa/acc.hh, spot/twa/twagraph.cc,
spot/twa/twagraph.hh: Add supporting methods.
2020-02-24 15:05:40 +01:00
Florian Renkin
5d021a18d6 IAR: Add pretty print option and better lookup of existing states
* spot/twaalgos/rabin2parity.cc, spot/twaalgos/rabin2parity.hh: here.
2020-02-24 15:05:39 +01:00
Alexandre Duret-Lutz
8a4a4b9fff simplify_acceptance: fix erroneous simplification
Reported by Florian Renkin.

* spot/twaalgos/cleanacc.cc: Do not rewrite
...Fin(0)&(Fin(1)|(Fin(3)&Inf(4)))... as Fin(0)&f when it appears that
{1,3} cannot receive {0}, because {1} is used elsewhere in the
acceptance.
* tests/python/simplacc.py: Add test case.
2020-02-24 12:17:07 +01:00
Alexandre Duret-Lutz
b44daef42a Merge branch 'master' into next 2020-02-19 15:09:25 +01:00
Alexandre Duret-Lutz
c98f82dc36 * NEWS, configure.ac: Bump version to 2.8.6.dev. 2020-02-19 14:47:34 +01:00
Alexandre Duret-Lutz
39fa829340 Release Spot 2.8.6
* NEWS, configure.ac, doc/org/setup.org: Update version.
2020-02-19 14:45:07 +01:00
Alexandre Duret-Lutz
00cd9b7719 doc: add DOIs to most citations
* doc/spot.bib: Here.
* doc/tl/tl.tex: Fix a citation.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
05cf6683ce * tests/run.in: reset some envvars to avoid spurious failures. 2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
de5704049d tgba_determinize: improve citations in doc
* doc/spot.bib (klein.07.ciaa, redziejowski.12.fi): Add two entries.
* spot/twaalgos/determinize.hh: Use them.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
80b04e10b5 update citations of generic emptiness-check
* doc/org/citing.org, doc/spot.bib: Here.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
aad5b135ef fix is_generalized_rabin() and is_generalized_streett()
* spot/twa/acc.cc: Fix detection of single-pairs gen-Rabin and
gen-Streett.
* tests/core/randaut.test: Add test case.
* NEWS: Mention this issue.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
9365f8de1b relabel: do not create automata with false labels
* spot/twaalgos/relabel.cc: Remove false transitions if
some of the propositions are equivalent to true or false.
* NEWS: Mention the bug.
* tests/core/ltl2tgba2.test: Test it.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
cf2cfcd2fb _postproc_translate_options: fix syntax error
* python/spot/__init__.py: Here.
* tests/python/except.py: Add test.
* NEWS: Mention the issue.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
e7ae3d3ae0 fix degeneralize_tba after accepting transition
* spot/twaalgos/degen.cc (degeneralize_tba): Here.
* tests/python/simstate.py: Adjust expected values.
* NEWS: Mention the bug.
2020-02-19 10:52:15 +01:00
Alexandre Duret-Lutz
abab62dd3e * doc/org/concepts.org: Typo. 2020-02-19 10:42:11 +01:00
Alexandre Duret-Lutz
fd92d20fd3 ipnbdoctest: attempt to restart when the kernel dies
* tests/python/ipnbdoctest.py: Catch kernel deaths, wait a random
number of seconds, and try again up to three times.
2020-02-19 10:42:04 +01:00
Alexandre Duret-Lutz
e0d8188701 doc: add DOIs to most citations
* doc/spot.bib: Here.
* doc/tl/tl.tex: Fix a citation.
2020-02-19 10:40:40 +01:00
Alexandre Duret-Lutz
5afa528df0 pdegen: fix another original-states related issue
* spot/twaalgos/degen.cc (keep_bottommost_copies): Fix intialisation
of bottommost_occurence.
* tests/python/pdegen.py: Add test case sent by Florian Renkin.
2020-02-16 20:02:48 +01:00
Alexandre Duret-Lutz
10f40041b1 pdegen: fix the place with original-states are composed
doing it too early breaks the "redirect all-accepting transitions"
optimization

* spot/twaalgos/degen.cc: move the original-states composition
code.
* tests/python/pdegen.py: Add test-case from Florian Renkin.
2020-02-16 16:38:31 +01:00
Alexandre Duret-Lutz
5b7961257d * tests/run.in: reset some envvars to avoid spurious failures. 2020-02-16 16:38:17 +01:00
Alexandre Duret-Lutz
a1acc19c2b tgba_determinize: improve citations in doc
* doc/spot.bib (klein.07.ciaa, redziejowski.12.fi): Add two entries.
* spot/twaalgos/determinize.hh: Use them.
2020-02-16 08:27:33 +01:00
Alexandre Duret-Lutz
7d81748aa4 update citations of generic emptiness-check
* doc/org/citing.org, doc/spot.bib: Here.
2020-02-15 15:46:36 +01:00
Alexandre Duret-Lutz
b5e464e05a autfilt add support for --partial-degeneralize
* bin/autfilt.cc: Add a --partial-degeneralize option.
* NEWS: Mention it.
* spot/twaalgos/degen.cc: Do not restrict partial_degeneralize() to
deterministic automata.
* spot/twaalgos/degen.hh: Adjust documentation.
* tests/core/pdegen.test: New test case.
* tests/Makefile.am: Add it.
* tests/python/pdegen.py: Adjust.
2020-02-15 10:31:28 +01:00
Alexandre Duret-Lutz
bf42b19eff fix is_generalized_rabin() and is_generalized_streett()
* spot/twa/acc.cc: Fix detection of single-pairs gen-Rabin and
gen-Streett.
* tests/core/randaut.test: Add test case.
* NEWS: Mention this issue.
2020-02-15 10:05:27 +01:00
Alexandre Duret-Lutz
6a988f6884 degen: always compose original-states with the input
* spot/twaalgos/degen.cc (degeneralize, partial_degeneralize): Here.
* spot/twaalgos/degen.hh: Mention it.
2020-02-10 14:57:35 +01:00
Alexandre Duret-Lutz
dd8c00fff0 partial_degeneralize: force purge_unreachable in some corner case
* spot/twaalgos/degen.cc: If an all-accepting transition has been
redirected, we need to force purge_unreachable_state() to be called,
otherwise we may have unreachable states.
* tests/python/pdegen.py: Add test case.
2020-02-10 14:08:05 +01:00
Alexandre Duret-Lutz
443f638b9c relabel: do not create automata with false labels
* spot/twaalgos/relabel.cc: Remove false transitions if
some of the propositions are equivalent to true or false.
* NEWS: Mention the bug.
* tests/core/ltl2tgba2.test: Test it.
2020-02-10 12:05:36 +01:00
Alexandre Duret-Lutz
09bb61db33 _postproc_translate_options: fix syntax error
* python/spot/__init__.py: Here.
* tests/python/except.py: Add test.
* NEWS: Mention the issue.
2020-02-10 11:37:58 +01:00
Alexandre Duret-Lutz
71f1f2fb96 partial_degeneralize: handle original-state correctly
Reported by Florian Renkin

* spot/twaalgos/degen.cc (partial_degeneralize): Update
original-state when partial_degeneralize is executed more
than once in a loop.
* tests/python/pdegen.py: Add test case.
2020-02-07 12:27:53 +01:00
Alexandre Duret-Lutz
febbe5c2e3 rabin_to_buchi_if_realizable: new function
* spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh: Implement it.
* tests/python/tra2tba.py: Test it.
* NEWS: Mention it.
2020-02-05 17:44:45 +01:00
Alexandre Duret-Lutz
bf4a0ccffd partial_degeneralize: add a version that takes no "todegen" argument
* spot/twaalgos/degen.cc,
spot/twaalgos/degen.hh (is_partially_degeneralizable): New function.
(partial_degeneralize): New version without todegen argument.
* tests/python/pdegen.py: Add test cases.
2020-02-04 17:31:12 +01:00
Alexandre Duret-Lutz
8df616ee0d partial_degeneralization: generalize to terms that contain todegen
* spot/twaalgos/degen.cc: Implement this.
* tests/python/pdegen.py: Add tests.
2020-02-04 13:47:44 +01:00
Alexandre Duret-Lutz
b733d486be fix degeneralize_tba after accepting transition
* spot/twaalgos/degen.cc (degeneralize_tba): Here.
* tests/python/pdegen.py, tests/python/simstate.py: Adjust expected
values.
* NEWS: Mention the bug.
2020-02-03 15:38:51 +01:00
Alexandre Duret-Lutz
f9e75de647 partial_degeneralize: a support for disjunction of Fin
* spot/twaalgos/degen.cc, spot/twaalgos/degen.hh: Implement this.
Also throw a runtime error in case were todegen does not match any
subformula.
* tests/python/pdegen.py: Add tests.
2020-02-03 11:08:20 +01:00
Alexandre Duret-Lutz
f1008c156b improve partial_degeneralize() on several cases
On these 4 cases, added to pdegen.py, and supplied by Florian Renkin,
partial_degeneralize() is now at least as good as degeneralize_tba(),
and sometimes better.  This is achieved as follows: (1) a
propagate_marks procedure is introduced to propagate marks as far as
possible on the automaton (e.g., common outgoing marks can be push
onto the incoming transitions and vice-versa), (2) the
degeneralization order is compute dynamically, and (3) whenever and
fully-accepting transition is taken in the original automaton, the
destination level is chosen to be the highest existing level.

* spot/twaalgos/degen.cc,
spot/twaalgos/degen.hh (propagate_marks_vector, propagate_marks_here):
New functions.
(partial_degeneralize): Improve, as described above.
* tests/python/pdegen.py: Add test cases.
2020-02-03 09:52:54 +01:00
Alexandre Duret-Lutz
da3333477f * doc/org/concepts.org: Typo. 2020-01-28 09:37:33 +01:00
Alexandre Duret-Lutz
50c0f880dc Inf(i)|Inf(j) -> Inf(k) and Fin(i)&Fin(j) -> Fin(k)
Implement those rules in simplify_acceptance_here().

* NEWS: Mention the change.
* spot/twa/acc.cc,
spot/twa/acc.hh (acc_cond::acc_code::used_once_sets): New method.
* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh:
Implement the above rule.
* tests/core/remfin.test: Adjust expected results.
* tests/python/simplacc.py: New file.
* tests/Makefile.am: Add it.
2020-01-28 09:37:28 +01:00
Alexandre Duret-Lutz
5dc6da0b20 ipnbdoctest: attempt to restart when the kernel dies
* tests/python/ipnbdoctest.py: Catch kernel deaths, wait a random
number of seconds, and try again up to three times.
2020-01-04 18:05:45 +01:00
Alexandre Duret-Lutz
9d70eeef97 ltlcross: display short names when supplied
Suggested by František Blahoudek.

* bin/ltlcross.cc: Implement this.
* NEWS, doc/org/ltlcross.org: Document it.
* tests/core/ltlcross4.test: Test it.
2020-01-04 15:54:18 +01:00
Alexandre Duret-Lutz
6a531be052 Merge branch 'master' into next 2020-01-04 14:25:35 +01:00
Alexandre Duret-Lutz
d8ed0fb8ab * NEWS, configure.ac: Bump version to 2.8.5.dev. 2020-01-04 14:24:49 +01:00
Alexandre Duret-Lutz
68435915e7 Release Spot 2.8.5
* NEWS, configure.ac, doc/org/setup.org: Bump version number.
2020-01-04 14:19:33 +01:00