Documentation

Std.Tactic.BVDecide.Normalize.BitVec

This module contains the BitVec simplifying part of the bv_normalize simp set.

theorem Std.Tactic.BVDecide.Normalize.BitVec.add_const_left {w : Nat} (a : BitVec w) (b : BitVec w) (c : BitVec w) :
a + (b + c) = a + b + c
theorem Std.Tactic.BVDecide.Normalize.BitVec.add_const_right {w : Nat} (a : BitVec w) (b : BitVec w) (c : BitVec w) :
a + (b + c) = a + c + b
theorem Std.Tactic.BVDecide.Normalize.BitVec.add_const_left' {w : Nat} (a : BitVec w) (b : BitVec w) (c : BitVec w) :
a + b + c = a + c + b
theorem Std.Tactic.BVDecide.Normalize.BitVec.add_const_right' {w : Nat} (a : BitVec w) (b : BitVec w) (c : BitVec w) :
a + b + c = b + c + a
theorem Std.Tactic.BVDecide.Normalize.BitVec.zero_sshiftRight {w : Nat} {a : Nat} :
(0#w).sshiftRight a = 0#w
theorem Std.Tactic.BVDecide.Normalize.BitVec.sshiftRight_zero :
∀ {w : Nat} {a : BitVec w}, a.sshiftRight 0 = a
theorem Std.Tactic.BVDecide.Normalize.BitVec.zero_ult' {w : Nat} (a : BitVec w) :
(0#w).ult a = (a != 0#w)
theorem Std.Tactic.BVDecide.Normalize.BitVec.getElem_eq_getLsbD {w : Nat} (a : BitVec w) (i : Nat) (h : i < w) :
a[i] = a.getLsbD i