scc_filter_states: also remove useless acceptance marks
* src/twaalgos/sccfilter.hh, src/twaalgos/sccfilter.cc (scc_filter_states): Remove useless acceptance marks while preserving state-based acceptance. Add a new argument to specify if all useless mark have to be removed, like for scc_filter. * src/twaalgos/simulation.cc: Use the new parameter. * src/twaalgos/postproc.cc: Likewise. Also call do_scc_filter even after WDBA simplification to cleanup trivial SCCs. Preserve state-based acceptance for weak automata. * src/tests/readsave.test: Add one test. * src/tests/dstar.test, src/tests/prodor.test, src/tests/remfin.test, src/tests/sim3.test, wrap/python/tests/automata.ipynb, wrap/python/tests/piperead.ipynb: Adjust expected output. * NEWS: Mention the change.
This commit is contained in:
parent
2af3678893
commit
cd2e527526
12 changed files with 368 additions and 279 deletions
8
NEWS
8
NEWS
|
|
@ -10,6 +10,14 @@ New in spot 1.99.4a (not yet released)
|
|||
are declared as weak. This code was previously in
|
||||
dtgba_complement().
|
||||
|
||||
* scc_filter_states() has learnt to remove useless acceptance marks
|
||||
that are on transitions between SCCs, while preserving state-based
|
||||
acceptance. The most visible effect is in the output of "ltl2tgba
|
||||
-s XXXa": it used to have 5 accepting states, it now has only one.
|
||||
(Changing removing acceptance of those 4 states has no effect on
|
||||
the language, but it speedup some algorithms like NDFS-based
|
||||
emptiness checks, as discussed in our Spin'15 paper.)
|
||||
|
||||
Python:
|
||||
|
||||
* Add bindings for complete() and dtwa_complement()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue