scc_filter: do not remove Fin sets from rejecting SCCs
* src/twaalgos/sccfilter.cc (acc_filter_some, acc_filter_all): Merge into... (acc_filter_mask): ... this single parametrized class, and only remove sets that are only used as Inf. * src/twa/acc.hh: Add missing operator~. * src/tests/sccsimpl.test: Add test case. * src/tests/sccdot.test: Adjust. * NEWS: Mention the bug.
This commit is contained in:
parent
5d9e7d1f93
commit
5cb19a290b
5 changed files with 148 additions and 50 deletions
|
|
@ -168,7 +168,7 @@ State: 2
|
|||
[0&1] 0 {0 1}
|
||||
State: 3
|
||||
[1] 1
|
||||
[!1] 3
|
||||
[!1] 3 {2}
|
||||
State: 4
|
||||
[!0&1] 4 {0 1}
|
||||
[0&1] 4 {0 2}
|
||||
|
|
|
|||
|
|
@ -240,3 +240,105 @@ grep 'Acceptance: 2 ' out8.txt
|
|||
run 0 ../ikwiad -R3 -s -RDS -ks \
|
||||
'(G(!((b) R (a)))) R (((c) R (!(d))) U (G((a) | (!(G(e))))))' > out9.txt
|
||||
grep 'states: 6$' out9.txt
|
||||
|
||||
|
||||
# Spot 1.99.1 used to incorrectly remove Fin sets from rejecting SCCs
|
||||
# in scc_filter().
|
||||
cat >input <<EOF
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 1
|
||||
Acceptance: 1 Fin(0)
|
||||
AP: 1 "p0"
|
||||
--BODY--
|
||||
State: 0
|
||||
[t] 0
|
||||
State: 1
|
||||
[!0] 1 {0}
|
||||
[0] 0
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 1
|
||||
Acceptance: 2 Fin(0)&Inf(1)
|
||||
AP: 1 "p0"
|
||||
--BODY--
|
||||
State: 0 {1}
|
||||
[t] 0
|
||||
State: 1
|
||||
[!0] 1 {0 1}
|
||||
[0] 0
|
||||
--END--
|
||||
EOF
|
||||
|
||||
# run 0 ../../bin/autfilt -C -H --any --high input >output
|
||||
# cat >expected <<EOF
|
||||
# HOA: v1
|
||||
# States: 2
|
||||
# Start: 1
|
||||
# AP: 1 "p0"
|
||||
# acc-name: Buchi
|
||||
# Acceptance: 1 Inf(0)
|
||||
# properties: trans-labels explicit-labels state-acc complete
|
||||
# properties: deterministic inherently-weak
|
||||
# --BODY--
|
||||
# State: 0 {0}
|
||||
# [t] 0
|
||||
# State: 1
|
||||
# [0] 0
|
||||
# [!0] 1
|
||||
# --END--
|
||||
# HOA: v1
|
||||
# States: 2
|
||||
# Start: 1
|
||||
# AP: 1 "p0"
|
||||
# acc-name: Buchi
|
||||
# Acceptance: 1 Inf(0)
|
||||
# properties: trans-labels explicit-labels state-acc complete
|
||||
# properties: deterministic inherently-weak
|
||||
# --BODY--
|
||||
# State: 0 {0}
|
||||
# [t] 0
|
||||
# State: 1
|
||||
# [0] 0
|
||||
# [!0] 1
|
||||
# --END--
|
||||
# EOF
|
||||
# cat output
|
||||
# diff output expected
|
||||
|
||||
run 0 ../../bin/autfilt -C -H --det --high input >output
|
||||
cat >expected <<EOF
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 1
|
||||
AP: 1 "p0"
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels state-acc complete
|
||||
properties: deterministic inherently-weak
|
||||
--BODY--
|
||||
State: 0 {0}
|
||||
[t] 0
|
||||
State: 1
|
||||
[0] 0
|
||||
[!0] 1
|
||||
--END--
|
||||
HOA: v1
|
||||
States: 2
|
||||
Start: 1
|
||||
AP: 1 "p0"
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels state-acc complete
|
||||
properties: deterministic inherently-weak
|
||||
--BODY--
|
||||
State: 0 {0}
|
||||
[t] 0
|
||||
State: 1
|
||||
[0] 0
|
||||
[!0] 1
|
||||
--END--
|
||||
EOF
|
||||
cat output
|
||||
diff output expected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue