We want to have a separate method discard_states() which removes all unreachable
and irrelevant states from a transition system. Furthermore, this method should
not use a default shrinking strategy to do so. As this is something which could
impact performance, I dedicate an own issue for it.
Malte, do you have a special implementation of the removal in mind? All I can
think off to start with is to iterate over all transitions and to remove those
leading to/starting in unreachable/irrelevant states. The question then is how
to deal with the removal of states. This is something where we need to "rename"
the remaining states, something which the shrinking strategies normally take
care of. Should we manually compute an equivalence relation which we can pass to
"apply_abstraction"? I think I'll just start with that idea.
|