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:
parent
07ee3d2dd0
commit
8c32fba8b9
8 changed files with 148 additions and 20 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue