dualize: should not call cleanup_acceptance_here

Based on a report by Emmanuel Filiot, who was surprized that dualizing
Büchi did not always produce co-Büchi.

* spot/twaalgos/dualize.cc: Remove the call to
cleanup_acceptance_here.
* spot/twaalgos/dualize.hh: Improve documentation.
* NEWS: Mention the possible backward incompatible change.
* tests/core/dualize.test, tests/python/dualize.py,
tests/python/pdegen.py: Adjust test cases.
* spot/twaalgos/complement.cc (complement): Call
cleanup_acceptance_here when dualize() returns a smaller automaton.
* THANKS: Add Emmanuel.
This commit is contained in:
Alexandre Duret-Lutz 2024-03-06 17:53:23 +01:00
parent 60f046a574
commit 1b81ecb80c
8 changed files with 67 additions and 23 deletions

7
NEWS
View file

@ -148,6 +148,13 @@ New in spot 2.11.6.dev (not yet released)
should raise an exception of return nullptr if it requires more
acceptance sets than supported.
- [Potential backward incompatibility] spot::dualize() does not call
cleanup_acceptance() anymore. This change ensures that the dual
of a Büchi automaton will always be a co-Büchi automaton.
Previously cleanup_acceptance(), which remove unused colors from
the acceptance, was sometimes able to simplify co-Büchi to "t",
causing surprizes.
Python:
- The spot.automata() and spot.automaton() functions now accept a