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
|
|
@ -1,7 +1,7 @@
|
|||
#!@PYTHON@
|
||||
# -*- mode: python; coding: utf-8 -*-
|
||||
# Copyright (C) 2011, 2012, 2013, 2014, 2015, 2016 Laboratoire de Recherche et
|
||||
# Développement de l'Epita (LRDE).
|
||||
# Copyright (C) 2011, 2012, 2013, 2014, 2015, 2016, 2017 Laboratoire de
|
||||
# Recherche et Développement de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
|
|
@ -511,8 +511,8 @@ if output_type == 'f':
|
|||
automaton = spot.ltl_to_tgba_fm(f, dict, False, True)
|
||||
minimized = spot.minimize_obligation(automaton, f)
|
||||
if minimized != automaton:
|
||||
g = spot.is_terminal_automaton(minimized)
|
||||
s = spot.is_safety_mwdba(minimized)
|
||||
g = spot.is_terminal_automaton(minimized, None, True)
|
||||
s = spot.is_safety_automaton(minimized)
|
||||
if s and not f.is_syntactic_safety():
|
||||
unbufprint('<li>pathologic safety</li>')
|
||||
if g and not f.is_syntactic_guarantee():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue