dot: display acceptance names
* spot/twaalgos/dot.cc: Display common acceptance names. * NEWS: Mention the change. * doc/org/oaut.org: Adjust text. * tests/core/alternating.test, tests/core/readsave.test, tests/python/_altscc.ipynb, tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb, tests/python/automata.ipynb, tests/python/decompose.ipynb, tests/python/gen.ipynb, tests/python/highlighting.ipynb, tests/python/product.ipynb, tests/python/randaut.ipynb: Adjust test cases.
This commit is contained in:
parent
f8ef06acc6
commit
1cc45b2413
15 changed files with 1455 additions and 1872 deletions
|
|
@ -58,7 +58,7 @@ autfilt --dot=bans alt.hoa >alt.dot
|
|||
cat >expect.dot <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="Fin(⓿)"
|
||||
label="Fin(⓿)\n[co-Büchi]"
|
||||
labelloc="t"
|
||||
I [label="", style=invis, width=0]
|
||||
I -> -11 [arrowhead=onormal]
|
||||
|
|
@ -500,937 +500,7 @@ style='arrowhead=onormal'
|
|||
cat >expect6.dot<<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
--BODY--
|
||||
State: 0
|
||||
[t] 1 {0}
|
||||
State: 1
|
||||
[t] 1
|
||||
[0] 1 {0}
|
||||
--END--
|
||||
EOF
|
||||
diff expected res
|
||||
|
||||
|
||||
cat >ex1<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex2<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex3<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
autfilt -q --equivalent-to=ex1 ex2
|
||||
autfilt -q --included-in=ex1 ex2
|
||||
autfilt -q --equivalent-to=ex1 ex3 && exit 1
|
||||
autfilt -q --intersect=ex1 ex3
|
||||
|
||||
|
||||
cat >ex4<<EOF
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2&4
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1&3
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
State: 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4d<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-unreachable-states ex4 > out4
|
||||
diff expect4 out4
|
||||
run 0 autfilt --remove-dead-states ex4 > out4
|
||||
diff expect4d out4
|
||||
|
||||
|
||||
cat >ex5<<EOF
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
--BODY--
|
||||
State: 0
|
||||
State: 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
State: 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
State: 1
|
||||
[!0] 1&0&3
|
||||
State: 2
|
||||
State: 3
|
||||
[t] 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-dead-states ex5 > out5
|
||||
cat >expect <<EOF
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
diff out5 expect
|
||||
|
||||
# Test if split option with color is correct
|
||||
cat >ex6<<EOF
|
||||
HOA: v1.1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 3 "c" "b" "a"
|
||||
Acceptance: 1 Fin(0)
|
||||
spot.highlight.edges: 2 1 3 2
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0&!2] 0
|
||||
[!0&1&2] 0&1
|
||||
[!0&2] 0&1
|
||||
State: 1
|
||||
[1] 1
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --dot='baryf(Lato)' ex6 > ex6.dot
|
||||
|
||||
style='arrowhead=onormal'
|
||||
cat >expect6.dot<<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
--BODY--
|
||||
State: 0
|
||||
[t] 1 {0}
|
||||
State: 1
|
||||
[t] 1
|
||||
[0] 1 {0}
|
||||
--END--
|
||||
EOF
|
||||
diff expected res
|
||||
|
||||
|
||||
cat >ex1<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex2<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex3<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
autfilt -q --equivalent-to=ex1 ex2
|
||||
autfilt -q --included-in=ex1 ex2
|
||||
autfilt -q --equivalent-to=ex1 ex3 && exit 1
|
||||
autfilt -q --intersect=ex1 ex3
|
||||
|
||||
|
||||
cat >ex4<<EOF
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2&4
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1&3
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
State: 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4d<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-unreachable-states ex4 > out4
|
||||
diff expect4 out4
|
||||
run 0 autfilt --remove-dead-states ex4 > out4
|
||||
diff expect4d out4
|
||||
|
||||
|
||||
cat >ex5<<EOF
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
--BODY--
|
||||
State: 0
|
||||
State: 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
State: 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
State: 1
|
||||
[!0] 1&0&3
|
||||
State: 2
|
||||
State: 3
|
||||
[t] 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-dead-states ex5 > out5
|
||||
cat >expect <<EOF
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
diff out5 expect
|
||||
|
||||
# Test if split option with color is correct
|
||||
cat >ex6<<EOF
|
||||
HOA: v1.1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 3 "c" "b" "a"
|
||||
Acceptance: 1 Fin(0)
|
||||
spot.highlight.edges: 2 1 3 2
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0&!2] 0
|
||||
[!0&1&2] 0&1
|
||||
[!0&2] 0&1
|
||||
State: 1
|
||||
[1] 1
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --dot='baryf(Lato)' ex6 > ex6.dot
|
||||
|
||||
style='arrowhead=onormal'
|
||||
cat >expect6.dot<<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
--BODY--
|
||||
State: 0
|
||||
[t] 1 {0}
|
||||
State: 1
|
||||
[t] 1
|
||||
[0] 1 {0}
|
||||
--END--
|
||||
EOF
|
||||
diff expected res
|
||||
|
||||
|
||||
cat >ex1<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex2<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >ex3<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
EOF
|
||||
|
||||
autfilt -q --equivalent-to=ex1 ex2
|
||||
autfilt -q --included-in=ex1 ex2
|
||||
autfilt -q --equivalent-to=ex1 ex3 && exit 1
|
||||
autfilt -q --intersect=ex1 ex3
|
||||
|
||||
|
||||
cat >ex4<<EOF
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 0&2&4
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&2
|
||||
State: 1
|
||||
[t] 1&4
|
||||
State: 2
|
||||
[!0] 2 {0}
|
||||
[0] 3
|
||||
State: 3
|
||||
[t] 3
|
||||
State: 4
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1&3
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
properties: univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
State: 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expect4d<<EOF
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels trans-acc complete
|
||||
properties: deterministic univ-branch
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 0
|
||||
[!0] 0&1
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 2
|
||||
State: 2
|
||||
[t] 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-unreachable-states ex4 > out4
|
||||
diff expect4 out4
|
||||
run 0 autfilt --remove-dead-states ex4 > out4
|
||||
diff expect4d out4
|
||||
|
||||
|
||||
cat >ex5<<EOF
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
--BODY--
|
||||
State: 0
|
||||
State: 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 3
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
State: 2
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0&1
|
||||
AP: 1 "a"
|
||||
Acceptance: 0 t
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1&2
|
||||
State: 1
|
||||
[!0] 1&0&3
|
||||
State: 2
|
||||
State: 3
|
||||
[t] 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --remove-dead-states ex5 > out5
|
||||
cat >expect <<EOF
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: co-Buchi
|
||||
Acceptance: 1 Fin(0)
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0] 1
|
||||
State: 1
|
||||
[!0] 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 1
|
||||
Start: 0
|
||||
AP: 1 "a"
|
||||
acc-name: all
|
||||
Acceptance: 0 t
|
||||
properties: trans-labels explicit-labels state-acc deterministic
|
||||
properties: stutter-invariant weak
|
||||
--BODY--
|
||||
State: 0
|
||||
--END--
|
||||
EOF
|
||||
diff out5 expect
|
||||
|
||||
# Test if split option with color is correct
|
||||
cat >ex6<<EOF
|
||||
HOA: v1.1
|
||||
States: 2
|
||||
Start: 0&1
|
||||
AP: 3 "c" "b" "a"
|
||||
Acceptance: 1 Fin(0)
|
||||
spot.highlight.edges: 2 1 3 2
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0&!2] 0
|
||||
[!0&1&2] 0&1
|
||||
[!0&2] 0&1
|
||||
State: 1
|
||||
[1] 1
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --dot='baryf(Lato)' ex6 > ex6.dot
|
||||
|
||||
style='arrowhead=onormal'
|
||||
cat >expect6.dot<<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)>
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)<br/>[co-Büchi]>
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
fontname="Lato"
|
||||
|
|
@ -1447,7 +517,7 @@ digraph G {
|
|||
-1.1 [label=<>,shape=point]
|
||||
-1.1 -> 0 [style=bold, color="#FF4DA0"]
|
||||
-1.1 -> 1 [style=bold, color="#FF4DA0"]
|
||||
0 -> -1.2 [label=<a & !c>, style=bold, color="#FF7F00", $style]
|
||||
0 -> -1.2 [label=<a & !c>, style=bold, color="#FF7F00", arrowhead=onormal]
|
||||
-1.2 [label=<>,shape=point]
|
||||
-1.2 -> 0 [style=bold, color="#FF7F00"]
|
||||
-1.2 -> 1 [style=bold, color="#FF7F00"]
|
||||
|
|
@ -1455,7 +525,6 @@ digraph G {
|
|||
1 -> 1 [label=<b>]
|
||||
}
|
||||
EOF
|
||||
|
||||
diff ex6.dot expect6.dot
|
||||
|
||||
cat >ex7<<EOF
|
||||
|
|
@ -1669,7 +738,7 @@ run 0 autfilt --dot='baryf(Lato)' ex9 > ex9.dot
|
|||
cat >expect9.dot <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)>
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)<br/>[co-Büchi]>
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
fontname="Lato"
|
||||
|
|
@ -1716,7 +785,7 @@ run 0 autfilt --dot='baryf(Lato)' ex10 > ex10.dot
|
|||
cat >expect10.dot <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)>
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)<br/>[co-Büchi]>
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
fontname="Lato"
|
||||
|
|
@ -1772,7 +841,7 @@ run 2 autfilt --dot='sbarf(Lato)' ex11 > ex11.dot
|
|||
cat >expect11.dot <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)>
|
||||
label=<Fin(<font color="#1F78B4">⓿</font>)<br/>[co-Büchi]>
|
||||
labelloc="t"
|
||||
fontname="Lato"
|
||||
node [fontname="Lato"]
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ cat output
|
|||
cat >expected <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="Inf(0)&Inf(1)"
|
||||
label="Inf(0)&Inf(1)\n[gen. Büchi 2]"
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
I [label="", style=invis, width=0]
|
||||
|
|
@ -376,7 +376,7 @@ cat output
|
|||
cat >expected <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="G(Fa & Fb)\nInf(⓿)&Inf(❶)"
|
||||
label="G(Fa & Fb)\nInf(⓿)&Inf(❶)\n[gen. Büchi 2]"
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
I [label="", style=invis, width=0]
|
||||
|
|
@ -399,7 +399,7 @@ one='<font color="#FF4DA0">❶</font>'
|
|||
cat >expected <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Inf($zero)&Inf($one)>
|
||||
label=<Inf($zero)&Inf($one)<br/>[gen. Büchi 2]>
|
||||
labelloc="t"
|
||||
fontname="Lato"
|
||||
node [fontname="Lato"]
|
||||
|
|
@ -470,7 +470,7 @@ EOF
|
|||
cat >expected <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="(Fin(⓿)|Fin(❸)) | (Fin(❶) & Inf(❷))"
|
||||
label="(Fin(⓿)|Fin(❸)) | (Fin(❶) & Inf(❷))\n[gen. Rabin 3]"
|
||||
labelloc="t"
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
|
|
@ -524,7 +524,7 @@ diff out expected
|
|||
cat >expected2 <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="(Fin(⓿)|Fin(❸)) | (Fin(❶) & Inf(❷))"
|
||||
label="(Fin(⓿)|Fin(❸)) | (Fin(❶) & Inf(❷))\n[gen. Rabin 3]"
|
||||
labelloc="t"
|
||||
node [shape="circle"]
|
||||
I [label="", style=invis, width=0]
|
||||
|
|
@ -892,7 +892,7 @@ run 0 autfilt -dbark input6 >output6d2
|
|||
cat >expect6d2 <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label=<Inf(<font color="#1F78B4">⓿</font>)>
|
||||
label=<Inf(<font color="#1F78B4">⓿</font>)<br/>[Büchi]>
|
||||
labelloc="t"
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue