This module contains the BitVec
simplifying part of the bv_normalize
simp set.
theorem
Std.Tactic.BVDecide.Normalize.BitVec.truncate_eq_zeroExtend
{w : Nat}
{n : Nat}
(x : BitVec w)
:
BitVec.truncate n x = BitVec.zeroExtend n x
theorem
Std.Tactic.BVDecide.Normalize.BitVec.ofNatLt_reduce
{w : Nat}
(n : Nat)
(h : n < 2 ^ w)
:
n#'h = BitVec.ofNat w n
theorem
Std.Tactic.BVDecide.Normalize.BitVec.zero_sshiftRight
{w : Nat}
{a : Nat}
:
(0#w).sshiftRight a = 0#w
theorem
Std.Tactic.BVDecide.Normalize.BitVec.ofBool_getLsbD
{w : Nat}
(a : BitVec w)
(i : Nat)
:
BitVec.ofBool (a.getLsbD i) = BitVec.extractLsb' i 1 a