streett_to_generalized_buchi: fix incorrect algorithm

Fixes #284, reported by Juraj Major.

* spot/twaalgos/totgba.cc: Fix the algorithm.
* spot/twa/acc.hh: More doc for future generations.
* tests/core/scc.test: More test cases.
* NEWS: Mention the issues.
This commit is contained in:
Alexandre Duret-Lutz 2017-09-26 17:17:17 +02:00
parent 210046e8cd
commit f81fb31136
4 changed files with 88 additions and 13 deletions

15
NEWS
View file

@ -70,11 +70,6 @@ New in spot 2.4.0.dev (not yet released)
will work either on f or its negation.
(see https://spot.lrde.epita.fr/hierarchy.html for details).
Bugs fixed:
- spot::scc_info::determine_unknown_acceptance() incorrectly
considered some rejecting SCC as accepting.
Deprecation notices:
(These functions still work but compilers emit warnings.)
@ -86,6 +81,16 @@ New in spot 2.4.0.dev (not yet released)
Bugs fixed:
- spot::scc_info::determine_unknown_acceptance() incorrectly
considered some rejecting SCC as accepting.
- spot::streett_to_generalized_buchi() could generate automata with
empty language if some Fin set did not intersect all accepting
SCCs. As a consequence, some Streett-like automata were
considered empty even though they were not. Also, the same
function could crash on input that had a Streett-like acceptance
not using all declared sets.
- The twa_graph::mege_edges() function relied on BDD IDs to sort
edges. This in turn caused some algorithm (like the
degeneralization) to produce slighltly different outputs (but