Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: shiftLeft in terms of extractLsb'
This PR adds rewrites from Bitwuzla that normalizes left shifts in terms of extracting bits and concatenating zeroes. If the shift amount is larger than the bitwidth, then the resulting bitvector is zero. ```lean theorem shiftLeft_eq_zero_of_le (x : BitVec w) (n : Nat) (hn : w ≤ n) : x <<< n = 0#w theorem shiftLeft_eq_concat_of_lt (x : BitVec w) (n : Nat) (hn : n < w) : x <<< n = ((x.extractLsb' 0 (w-n)).append (BitVec.zero n)).cast (by omega) ```
- Loading branch information