simulation: do not purge unreachable states when recording implications

This fixes the incorrect output of tgba_determinize() reported yesterday
by Reuben Rowe.

* spot/twaalgos/simulation.cc: Do not purge unreachable states when
recording implications.
* tests/python/bugdet.py: New test case.
* tests/Makefile.am: Add it.
* THANKS: Add Reuben.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2016-11-01 09:03:22 +01:00
parent adc40fdcb6
commit d919b78c89
5 changed files with 104 additions and 1 deletions

View file

@ -582,7 +582,13 @@ namespace spot
}
}
res->purge_unreachable_states();
// If we recorded implications for the determinization
// procedure, we should not remove unreachable states, as that
// will invalidate the contents of the IMPLICATIONS vector.
// It's OK not to purge the result, as the determinization
// will only explore the reachable part anyway.
if (!implications)
res->purge_unreachable_states();
delete gb;
res->prop_copy(original_,