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:
Alexandre Duret-Lutz 2018-06-30 20:39:30 +02:00
parent d82419de1a
commit e48c6c40d0
2 changed files with 10 additions and 2 deletions

View file

@ -266,8 +266,14 @@ namespace spot
scc_info si(susp_aut, scc_info_options::NONE);
if (si.is_trivial(si.scc_of(susp_aut->get_init_state_number())))
{
assert(!si.is_trivial(0));
susp_aut->set_init_state(si.one_state_of(0));
unsigned st = 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();
}
}