safra: Ensure parity min even acceptance
* src/tests/safra.cc, src/tests/safra.test: Use HOA format in tests. * src/twaalgos/safra.cc: Make sure the number of sets are always odd so that cycles without any acceptance set are rejected.
This commit is contained in:
parent
d0d42f86f9
commit
8362bf3a5f
3 changed files with 91 additions and 54 deletions
|
|
@ -41,28 +41,31 @@ State: 1
|
|||
EOF
|
||||
|
||||
cat >out.exp << EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
node [shape="circle"]
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
0 [label="0"]
|
||||
0 -> 1 [label="a"]
|
||||
1 [label="1"]
|
||||
1 -> 2 [label="a\n{0}"]
|
||||
1 -> 3 [label="!a & b\n{3}"]
|
||||
2 [label="2"]
|
||||
2 -> 1 [label="a"]
|
||||
2 -> 3 [label="!a & b"]
|
||||
3 [label="3"]
|
||||
3 -> 0 [label="a & !b"]
|
||||
3 -> 2 [label="a & b"]
|
||||
3 -> 3 [label="!a & b"]
|
||||
}
|
||||
HOA: v1
|
||||
States: 4
|
||||
Start: 0
|
||||
AP: 2 "a" "b"
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1
|
||||
State: 1
|
||||
[0] 2 {0}
|
||||
[!0&1] 3
|
||||
State: 2
|
||||
[0] 1
|
||||
[!0&1] 3
|
||||
State: 3
|
||||
[0&!1] 0
|
||||
[0&1] 2
|
||||
[!0&1] 3
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 ../safra --hoa double_a.hoa > out.dot
|
||||
diff out.dot out.exp
|
||||
run 0 ../safra --hoa double_a.hoa -H > out.hoa
|
||||
diff out.hoa out.exp
|
||||
|
||||
cat >double_b.hoa << EOF
|
||||
HOA: v1
|
||||
|
|
@ -83,33 +86,36 @@ State: 1
|
|||
EOF
|
||||
|
||||
cat >out.exp << EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
node [shape="circle"]
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
0 [label="0"]
|
||||
0 -> 1 [label="a"]
|
||||
1 [label="1"]
|
||||
1 -> 1 [label="a & !b"]
|
||||
1 -> 2 [label="a & b"]
|
||||
1 -> 3 [label="!a & b\n{0}"]
|
||||
2 [label="2"]
|
||||
2 -> 3 [label="!a & b\n{0}"]
|
||||
2 -> 4 [label="a & !b"]
|
||||
2 -> 5 [label="a & b"]
|
||||
3 [label="3"]
|
||||
3 -> 0 [label="a & !b"]
|
||||
3 -> 2 [label="a & b"]
|
||||
3 -> 3 [label="!a & b\n{0}"]
|
||||
4 [label="4"]
|
||||
4 -> 1 [label="a\n{0}"]
|
||||
4 -> 3 [label="!a & b\n{0}"]
|
||||
5 [label="5"]
|
||||
5 -> 1 [label="a\n{0}"]
|
||||
5 -> 3 [label="!a & b\n{0}"]
|
||||
}
|
||||
HOA: v1
|
||||
States: 6
|
||||
Start: 0
|
||||
AP: 2 "a" "b"
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels trans-acc deterministic
|
||||
--BODY--
|
||||
State: 0
|
||||
[0] 1
|
||||
State: 1
|
||||
[0&!1] 1
|
||||
[0&1] 2
|
||||
[!0&1] 3 {0}
|
||||
State: 2
|
||||
[!0&1] 3 {0}
|
||||
[0&!1] 4
|
||||
[0&1] 5
|
||||
State: 3
|
||||
[0&!1] 0
|
||||
[0&1] 2
|
||||
[!0&1] 3 {0}
|
||||
State: 4
|
||||
[0] 1 {0}
|
||||
[!0&1] 3 {0}
|
||||
State: 5
|
||||
[0] 1 {0}
|
||||
[!0&1] 3 {0}
|
||||
--END--
|
||||
EOF
|
||||
|
||||
run 0 ../safra --hoa double_b.hoa > out.dot
|
||||
diff out.dot out.exp
|
||||
run 0 ../safra --hoa double_b.hoa -H > out.hoa
|
||||
diff out.hoa out.exp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue