scc_info: determine accepting/rejecting-SCCs for any acceptance

* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh
(determine_unknown_acceptance): New function to call explicitly
in case one want to know whether the accepting/rejecting status
of all SCCs regardless of the acceptance.
* src/twaalgos/dotty.cc src/twaalgos/sccfilter.cc,
src/twaalgos/sccfilter.hh: Use it.
* src/tests/unambig.test, src/tests/sccdot.test: Add more tests.
* doc/org/oaut.org: Adjust doc for --dot=s, orange is not output
anymore.
This commit is contained in:
Alexandre Duret-Lutz 2015-05-13 23:16:26 +02:00
parent 07ee3d2dd0
commit 8c32fba8b9
8 changed files with 148 additions and 20 deletions

View file

@ -86,12 +86,12 @@ digraph G {
6 [label="6"]
}
subgraph cluster_1 {
color=orange
color=grey
label=""
0 [label="0"]
}
subgraph cluster_2 {
color=orange
color=green
label=""
9 [label="9"]
10 [label="10"]
@ -148,3 +148,41 @@ digraph G {
EOF
diff out.dot expected
# While we are here, make sure scc_filter remove those grey SCCs.
../../bin/autfilt --small -x simul=0 in.hoa -H > out.hoa
cat >expected.hoa <<EOF
HOA: v1
States: 8
Start: 0
AP: 2 "a" "b"
Acceptance: 3 Fin(2) & (Inf(0)&Inf(1))
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0&!1] 2
[1] 3
State: 1
[1] 4
State: 2
[0&1] 0 {0 1}
State: 3
[1] 1
[!1] 3
State: 4
[!0&1] 4 {0 1}
[0&1] 4 {0 2}
[t] 5
State: 5
[0&1] 5 {0 1}
[!0&1] 5 {0 2}
[t] 6
State: 6
[!0&1] 6 {0 2}
[0&1] 7 {0 1}
State: 7
[!0&1] 6 {0 1}
[0&1] 7 {0 2}
--END--
EOF
diff expected.hoa out.hoa

View file

@ -95,6 +95,54 @@ State: 1
[0] 1 {0}
[!0] 1
--END--
HOA: v1
States: 3
Start: 0
AP: 2 "b" "a"
Acceptance: 4 (Fin(1) & Inf(2)) | (Fin(0) & Inf(3))
properties: trans-labels explicit-labels trans-acc complete
--BODY--
State: 0
[!0&!1] 1 {1}
[0&!1] 0 {1 3}
[!0&1] 1 {2}
[0&1] 0 {2 3}
State: 1
[!0&!1] 2 {1}
[0&!1] 2 {1 3}
[!0&1] 1 {2}
[0&1] 1 {2 3}
State: 2
[!0&!1] 2 {1}
[0&!1] 2 {1 3}
[!0&1] 2 {1}
[0&1] 2 {1 3}
[!0] 0 /* extra transition */
--END--
HOA: v1
States: 3
Start: 0
Start: 2 /* extra initial state */
AP: 2 "b" "a"
Acceptance: 4 (Fin(1) & Inf(2)) | (Fin(0) & Inf(3))
properties: trans-labels explicit-labels trans-acc complete
--BODY--
State: 0
[!0&!1] 1 {1}
[0&!1] 0 {1 3}
[!0&1] 1 {2}
[0&1] 0 {2 3}
State: 1
[!0&!1] 2 {1}
[0&!1] 2 {1 3}
[!0&1] 1 {2}
[0&1] 1 {2 3}
State: 2
[!0&!1] 2 {1}
[0&!1] 2 {1 3}
[!0&1] 2 {1}
[0&1] 2 {1 3}
--END--
EOF
run 1 $autfilt -q --is-unambiguous input