sbacc: remove spurious initial state in some output

This fixes #492, based on a report from Jérôme Dubois.

* spot/twaalgos/sbacc.cc: If the initial state is in a rejecting
component, start with an initial state whose colors are unsat_mark.
* tests/core/sbacc.test: Add test case.
* tests/python/pdegen.py: Adjust it.
This commit is contained in:
Alexandre Duret-Lutz 2021-12-16 17:23:06 +01:00
parent 253dd80b53
commit c0a43cd92b
4 changed files with 47 additions and 7 deletions

View file

@ -145,6 +145,8 @@ namespace spot
// Use any edge going into the initial state to set the first
// acceptance mark.
init_acc = one_in[s] | common_out[s];
else
init_acc = unsat_mark.second;
old_st.push_back(new_state(s, init_acc));
}