ltl-split: deal with suspendable formulas that are false
Fixes #358. * spot/twaalgos/translate.cc: Fix the assert(). * tests/core/ltl2tgba2.test: Add a test case.
This commit is contained in:
parent
d82419de1a
commit
e48c6c40d0
2 changed files with 10 additions and 2 deletions
|
|
@ -266,8 +266,14 @@ namespace spot
|
||||||
scc_info si(susp_aut, scc_info_options::NONE);
|
scc_info si(susp_aut, scc_info_options::NONE);
|
||||||
if (si.is_trivial(si.scc_of(susp_aut->get_init_state_number())))
|
if (si.is_trivial(si.scc_of(susp_aut->get_init_state_number())))
|
||||||
{
|
{
|
||||||
assert(!si.is_trivial(0));
|
unsigned st = si.one_state_of(0);
|
||||||
susp_aut->set_init_state(si.one_state_of(0));
|
// The bottom SCC can actually be trivial if it
|
||||||
|
// has no successor because the formula is
|
||||||
|
// equivalent to false.
|
||||||
|
assert(!si.is_trivial(0) ||
|
||||||
|
susp_aut->out(st).begin()
|
||||||
|
== susp_aut->out(st).end());
|
||||||
|
susp_aut->set_init_state(st);
|
||||||
susp_aut->purge_unreachable_states();
|
susp_aut->purge_unreachable_states();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -364,12 +364,14 @@ diff output expected
|
||||||
|
|
||||||
# The first four formulas appear in a NEWS entry for Spot 2.6
|
# The first four formulas appear in a NEWS entry for Spot 2.6
|
||||||
# The 5th one is from issue #267.
|
# The 5th one is from issue #267.
|
||||||
|
# The 6th one is from issue #358.
|
||||||
cat >formulas <<EOF
|
cat >formulas <<EOF
|
||||||
GF((a & XXa) | (!a & XX!a)), 4,8, 4,8, 6,14, 7,14
|
GF((a & XXa) | (!a & XX!a)), 4,8, 4,8, 6,14, 7,14
|
||||||
GF((a & XXXa) | (!a & XXX!a)), 7,14, 8,16, 8,18, 15,30
|
GF((a & XXXa) | (!a & XXX!a)), 7,14, 8,16, 8,18, 15,30
|
||||||
GF(((a & Xb) | XXc) & Xd), 4,64, 4,64, 5,80, 5,80
|
GF(((a & Xb) | XXc) & Xd), 4,64, 4,64, 5,80, 5,80
|
||||||
GF((b | Fa) & (b R Xb)), 2,4, 2,4, 3,6, 3,12
|
GF((b | Fa) & (b R Xb)), 2,4, 2,4, 3,6, 3,12
|
||||||
G(F(a & Xa) & F(a & X!a)), 2,4, 2,4, 4,8, 4,8
|
G(F(a & Xa) & F(a & X!a)), 2,4, 2,4, 4,8, 4,8
|
||||||
|
G(!p0 & F(p1 & XG!p1)), 1,0, 1,0, 1,0, 1,0
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
ltl2tgba -Fformulas/1 --stats='%f, %s,%t' |
|
ltl2tgba -Fformulas/1 --stats='%f, %s,%t' |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue