sat: add missing prop_state_based_acc() call

Fixes #62.

* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Add call to
prop_state_based_acc() when building an automaton with state-based
acceptance.
* src/tgbatest/satmin2.test: New test.
* doc/org/satmin.org: Update.
This commit is contained in:
Alexandre Duret-Lutz 2015-03-17 18:29:28 +01:00
parent 6712fa3c65
commit 72eed9b2e2
4 changed files with 17 additions and 8 deletions

View file

@ -162,17 +162,17 @@ digraph G {
0 -> 0 [label=<!a &amp; b>] 0 -> 0 [label=<!a &amp; b>]
0 -> 1 [label=<!b>] 0 -> 1 [label=<!b>]
0 -> 2 [label=<a &amp; b>] 0 -> 2 [label=<a &amp; b>]
1 [label="1"] 1 [label="1", peripheries=2]
1 -> 4 [label=<!a<br/><font color="#5DA5DA">⓿</font>>] 1 -> 4 [label=<!a>]
1 -> 5 [label=<a<br/><font color="#5DA5DA">⓿</font>>] 1 -> 5 [label=<a>]
2 [label="2"] 2 [label="2"]
2 -> 1 [label=<!b>] 2 -> 1 [label=<!b>]
2 -> 4 [label=<!a &amp; b>] 2 -> 4 [label=<!a &amp; b>]
2 -> 5 [label=<a &amp; b>] 2 -> 5 [label=<a &amp; b>]
3 [label="3"] 3 [label="3", peripheries=2]
3 -> 0 [label=<!a<br/><font color="#5DA5DA">⓿</font>>] 3 -> 0 [label=<!a>]
3 -> 1 [label=<a &amp; !b<br/><font color="#5DA5DA">⓿</font>>] 3 -> 1 [label=<a &amp; !b>]
3 -> 2 [label=<a &amp; b<br/><font color="#5DA5DA">⓿</font>>] 3 -> 2 [label=<a &amp; b>]
4 [label="4"] 4 [label="4"]
4 -> 0 [label=<!a &amp; !b>] 4 -> 0 [label=<!a &amp; !b>]
4 -> 1 [label=<a &amp; b>] 4 -> 1 [label=<a &amp; b>]

View file

@ -639,6 +639,8 @@ namespace spot
auto a = make_tgba_digraph(autdict); auto a = make_tgba_digraph(autdict);
a->copy_ap_of(aut); a->copy_ap_of(aut);
acc_cond::mark_t acc = a->set_single_acceptance_set(); acc_cond::mark_t acc = a->set_single_acceptance_set();
if (state_based)
a->prop_state_based_acc();
a->new_states(satdict.cand_size); a->new_states(satdict.cand_size);
unsigned last_aut_trans = -1U; unsigned last_aut_trans = -1U;

View file

@ -780,7 +780,8 @@ namespace spot
auto a = make_tgba_digraph(autdict); auto a = make_tgba_digraph(autdict);
a->copy_ap_of(aut); a->copy_ap_of(aut);
a->set_generalized_buchi(satdict.cand_nacc); a->set_generalized_buchi(satdict.cand_nacc);
if (state_based)
a->prop_state_based_acc();
a->new_states(satdict.cand_size); a->new_states(satdict.cand_size);
// Last transition set in the automaton. // Last transition set in the automaton.

View file

@ -57,3 +57,9 @@ EOF
../ltl2tgba -RS1 -kt -XH input.hoa > output ../ltl2tgba -RS1 -kt -XH input.hoa > output
diff output expected diff output expected
# At some point, this formula was correctly minimized, but
# the output was not marked as state-based.
../../bin/ltl2tgba -BD -x sat-minimize "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out