remove_fin: ignore more useless transitions

Do not clone transitions that are necessarily part of on accepting
cycle in the main copy of the automaton.

* spot/twaalgos/remfin.cc: Use propagate_marks_vector to ignore more
edges.
* tests/core/remfin.test, tests/python/remfin.py,
tests/python/automata.ipynb: Adjust.
* tests/sanity/style.test: Do not choke on C++17 if statements with
initializer.
This commit is contained in:
Alexandre Duret-Lutz 2020-07-24 15:38:42 +02:00
parent 91db0e1e29
commit 7fbf4e0e3c
6 changed files with 269 additions and 288 deletions

View file

@ -92,4 +92,4 @@ State: 2
""")
b = spot.remove_fin(a)
size = (b.num_states(), b.num_edges())
assert size == (5, 17);
assert size == (5, 15);