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 normalize 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 (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