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

@ -877,14 +877,12 @@ State: 0
State: 1
[2] 0
[!2] 1
[0&2] 2
[0&!2] 3
[2] 4
[!2] 5
State: 2
[0] 2 {0 2}
State: 3
[0&2] 2 {0 2}
[0&!2] 3 {0}
State: 4
[1 | 2] 4 {1 2}
@ -1457,7 +1455,7 @@ State: 3
[1] 3
--END--
HOA: v1
States: 6
States: 5
Start: 0
AP: 3 "a" "b" "c"
acc-name: Buchi
@ -1468,25 +1466,20 @@ State: 0
[t] 0
[!1&!2] 1
[0] 2
[1 | 2] 4
[1 | 2] 3
State: 1
[2] 0
[!2] 1
[0&2] 2
[0&!2] 3
[2] 4
[!2] 5
[2] 3
[!2] 4
State: 2
[0] 2 {0}
State: 3
[0&2] 2
[0&!2] 3
[1 | 2] 3 {0}
[!1&!2] 4
State: 4
[1 | 2] 4 {0}
[!1&!2] 5
State: 5
[2] 4 {0}
[!2] 5
[2] 3 {0}
[!2] 4
--END--
EOF