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

View file

@ -115,6 +115,8 @@ tc.assertEqual(dd.num_states(), 1)
tc.assertEqual(str(dd.get_acceptance()), 'Inf(1) & Fin(0)')
e = spot.dualize(b)
spot.cleanup_acceptance_here(e)
tc.assertEqual(str(e.get_acceptance()), 'Fin(0)|Fin(1)')
de = spot.partial_degeneralize(e, [0, 1])
tc.assertTrue(de.equivalent_to(e))
tc.assertEqual(de.num_states(), 4)