postproc: add a SBAcc option

Producing state-based acceptance is now part of the postprocessing
routines.  That means we can more easily simplify automata with
state-based acceptance (using autfilt -S --small --high, for instance)
and as as side-effect, ltl2tgba can produce GBA.  However the result of
ltl2tgba -S is often larger than that of ltl2tgba -B.

* src/twaalgos/postproc.cc, src/twaalgos/postproc.hh: Implement
the SBAcc option.
* src/bin/common_post.cc, src/bin/common_post.hh: Implement -S.
* src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
src/bin/ltl2tgta.cc, src/bin/ltldo.cc: Adjust.
* src/tests/sim3.test: Augment test case.
* NEWS, doc/org/ltl2tgba.org, doc/org/autfilt.org: Document it -S.
This commit is contained in:
Alexandre Duret-Lutz 2015-05-14 20:04:50 +02:00
parent dd87bdf868
commit 0786e068ae
13 changed files with 181 additions and 42 deletions

View file

@ -47,3 +47,40 @@ State: 6 {0 3}
EOF
test "`../../bin/autfilt --small input --stats=%S,%s`" = 7,5
../../bin/autfilt -S --high --small input -H > out
cat >expected <<EOF
HOA: v1
States: 5
Start: 0
AP: 2 "b" "a"
Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3))
properties: trans-labels explicit-labels state-acc complete
properties: deterministic
--BODY--
State: 0 {0}
[!1] 1
[1] 3
State: 1 {1 3}
[0&!1] 1
[!0&!1] 2
[0&1] 3
[!0&1] 4
State: 2 {1}
[0&!1] 1
[!0&!1] 2
[0&1] 3
[!0&1] 4
State: 3 {0 3}
[0&!1] 1
[!0&!1] 2
[0&1] 3
[!0&1] 4
State: 4 {0}
[0&!1] 1
[!0&!1] 2
[0&1] 3
[!0&1] 4
--END--
EOF
diff out expected