Skip to content

Conversation

kroening
Copy link
Collaborator

@kroening kroening commented Aug 6, 2025

This adds treatment for the special case where all nonaccepting states of the Buechi automaton have an unconditional self-loop.

In this case, when these nonaccepting states is reached, the trace cannot be extended to an accepting trace, and will hence be rejected.

Hence, in this case, the Buechi acceptance condition is unnecessary, and a simple reachability property is sufficient.

@kroening kroening force-pushed the safety-only-Buechi branch 6 times, most recently from 5e8df40 to 8250fc5 Compare August 7, 2025 18:17
This adds treatment for the special case where all nonaccepting states of
the Buechi automaton have an unconditional self-loop.

In this case, when these nonaccepting states is reached, the trace cannot be
extended to an accepting trace, and will hence be rejected.

Hence, in this case, the Buechi acceptance condition is unnecessary, and a
simple reachability property is sufficient.

Among the 74 tests in regression/ebmc-spot/sva-buechi, only 3 require the
Büchi acceptance condition with this change applied.
@kroening kroening force-pushed the safety-only-Buechi branch from 8250fc5 to 28e4383 Compare August 7, 2025 18:31
@kroening kroening marked this pull request as ready for review August 7, 2025 20:08
@kroening kroening merged commit eab8af4 into main Aug 7, 2025
11 checks passed
@kroening kroening deleted the safety-only-Buechi branch August 7, 2025 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants