Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add BitVector overflow predicates from SMT-LIB. #41

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

bollu
Copy link

@bollu bollu commented Jan 6, 2025

This PR adds the definitions for overflow predicates, which allows one to detect when a bitvector expression has potentially overflowed.

We define unsigned overflow to have happened when BitVec.toNat . BitVec.ofNat w != id,
and similarly for signed overflow.

We will introduce circuits that compute these conditions for bv_decide to
bitblast these predicates with.

This PR adds the definitions for overflow predicates,
which allows one to detect when a bitvector expression
has potentially overflowed.

We define unsigned overflow to have happened when `BitVec.toNat . BitVec.ofNat w != id`,
and similarly for signed overflow.

We will introduce circuits that compute these conditions for `bv_decide` to
bitblast these predicates with.
@bollu bollu changed the base branch from master to nat-shiftLeft-shiftRight January 6, 2025 12:28
@bollu bollu changed the base branch from nat-shiftLeft-shiftRight to master January 6, 2025 12:28
@bollu bollu changed the title Overflow defs feat: Add BitVector overflow predicates from SMT-LIB. Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant