Skip to content

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.

2 participants