minimize_wdba: fix handling of input with useless SCCs
* spot/twaalgos/minimize.cc (minimize_wdba): Diminish the color of terminal SCCs that are incomplete, as if they had a non-accepting sink as successor. * spot/twaalgos/strength.hh, spot/twaalgos/strength.cc (is_terminal_automaton): Add an option to ignore trivial SCC as we did before, since it matters for deciding membership to the guarantee class. (is_safety_mwdba): Rewrite as ... (is_safety_automaton): ... generalizating to any acceptance, and ignoring trivial SCCs. * bin/ltlfilt.cc, python/ajax/spotcgi.in, spot/tl/hierarchy.cc, tests/core/ikwiad.cc: Adjust usage of is_terminal_automaton and is_safety_automaton(). * tests/core/hierarchy.test: Add a problematic formula as test-case. * NEWS: Mention the bug.
This commit is contained in:
parent
7d9ce0d6fc
commit
c9918f6407
9 changed files with 94 additions and 50 deletions
|
|
@ -66,8 +66,11 @@ namespace spot
|
|||
auto min = minimize_obligation(aut, f);
|
||||
if (aut != min) // An obligation.
|
||||
{
|
||||
bool g = is_terminal_automaton(min);
|
||||
bool s = is_safety_mwdba(min);
|
||||
scc_info si(min);
|
||||
// The minimba WDBA can have some trivial accepting SCCs
|
||||
// that we should ignore in is_terminal_automaton().
|
||||
bool g = is_terminal_automaton(min, &si, true);
|
||||
bool s = is_safety_automaton(min, &si);
|
||||
if (g)
|
||||
return s ? 'B' : 'G';
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue