Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: BitVec.toNat_{add,sub,mul_of_lt} for BitVector non-overflow rea…
…soning (#5411) These theorems are useful when one wants to simplify the goal state, under knowledge that the bitvector operations don't overflow. This can produce much smaller goal states that eventually allows `bv_omega` to quickly close the goal. Note that the LHS of the theorem is *not* in `simp` normal form, since e.g. `(x + y).toNat` is normalized to `(x.toNat + y.toNat) % 2^w`. It's not immediately clear to me what should be done about this. Co-authored-by: Kim Morrison <[email protected]>
- Loading branch information