Skip to content

Conversation

@sim642
Copy link
Member

@sim642 sim642 commented Apr 29, 2024

This is related to a point in #1356.

The SV-COMP autotuner can enable the enums domain, which emitted invariants like x == (_Bool)0 || x == (_Bool)1 for _Bool variables with top value. These are pointless because they match the type bounds (although indirectly), so we should avoid emitting them as we do in other domains and for other types.

This is because the enums domain normalizes top booleans to Inc {0, 1}, which then needs to be handled separately for invariant_ikind. In other cases, we can output some bounds using Exc ranges of enums, just like we do with the def_exc domain, although they're quite likely to match and get deduplicated for witness generation.

@sim642 sim642 added bug sv-comp SV-COMP (analyses, results), witnesses labels Apr 29, 2024
@sim642 sim642 added this to the SV-COMP 2025 milestone Apr 29, 2024
@sim642 sim642 merged commit 239935b into master Apr 29, 2024
@sim642 sim642 deleted the top-invariant branch April 29, 2024 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug sv-comp SV-COMP (analyses, results), witnesses

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants