safra: Use sub-transitions during determinization
* src/tests/safra.cc, src/tests/safra.test: Update results. * src/twaalgos/safra.cc, src/twaalgos/safra.hh: The use of transitions resulted in non deterministic automata. By using sub-transitions the problem is solved.
This commit is contained in:
parent
8b1f9d3712
commit
d0d42f86f9
4 changed files with 104 additions and 31 deletions
|
|
@ -22,7 +22,7 @@
|
|||
. ./defs
|
||||
set -e
|
||||
|
||||
cat >input.hoa << EOF
|
||||
cat >double_a.hoa << EOF
|
||||
HOA: v1
|
||||
name: "F\"x > 1\""
|
||||
States: 2
|
||||
|
|
@ -50,20 +50,21 @@ digraph G {
|
|||
0 -> 1 [label="a"]
|
||||
1 [label="1"]
|
||||
1 -> 2 [label="a\n{0}"]
|
||||
1 -> 3 [label="b\n{3}"]
|
||||
1 -> 3 [label="!a & b\n{3}"]
|
||||
2 [label="2"]
|
||||
2 -> 1 [label="a"]
|
||||
2 -> 3 [label="b"]
|
||||
2 -> 3 [label="!a & b"]
|
||||
3 [label="3"]
|
||||
3 -> 3 [label="b"]
|
||||
3 -> 0 [label="a"]
|
||||
3 -> 0 [label="a & !b"]
|
||||
3 -> 2 [label="a & b"]
|
||||
3 -> 3 [label="!a & b"]
|
||||
}
|
||||
EOF
|
||||
|
||||
run 0 ../safra --hoa input.hoa > out.dot
|
||||
run 0 ../safra --hoa double_a.hoa > out.dot
|
||||
diff out.dot out.exp
|
||||
|
||||
cat >input.hoa << EOF
|
||||
cat >double_b.hoa << EOF
|
||||
HOA: v1
|
||||
name: "F\"x > 1\""
|
||||
States: 2
|
||||
|
|
@ -90,13 +91,25 @@ digraph G {
|
|||
0 [label="0"]
|
||||
0 -> 1 [label="a"]
|
||||
1 [label="1"]
|
||||
1 -> 1 [label="a"]
|
||||
1 -> 2 [label="b\n{0}"]
|
||||
1 -> 1 [label="a & !b"]
|
||||
1 -> 2 [label="a & b"]
|
||||
1 -> 3 [label="!a & b\n{0}"]
|
||||
2 [label="2"]
|
||||
2 -> 2 [label="b\n{0}"]
|
||||
2 -> 0 [label="a"]
|
||||
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}"]
|
||||
}
|
||||
EOF
|
||||
|
||||
run 0 ../safra --hoa input.hoa > out.dot
|
||||
run 0 ../safra --hoa double_b.hoa > out.dot
|
||||
diff out.dot out.exp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue