twa_graph: fix purge_unreachable_states on alternating automata

The algorithm had two problems: it was removing only useless
destination from universal destination (instead of removing the entire
edge), and it was not properly iterating over the entire reachable
automaton.

* spot/twa/twagraph.cc: Fix it.
* spot/twa/twagraph.hh: Adjust documentation.
* tests/core/alternating.test: Add more tests.
* tests/python/twagraph.py: Adjust.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2017-03-28 23:34:41 +02:00
parent 5f564c2b45
commit f6a238efd5
5 changed files with 251 additions and 44 deletions

3
NEWS
View file

@ -30,6 +30,9 @@ New in spot 2.3.2.dev (not yet released)
the output is "terminal" because dtwa_complement() failed to reset
that property.
- spot::twa_graph::purge_unreachable_states() was misbehaving on
alternating automata.
Backward-incompatible changes:
- spot::acc_cond::mark_t::operator bool() has been marked as