This module contains the verification of the bitblaster for BitVec.rotateLeft from
Impl.Operations.RotateLeft.
@[simp]
theorem Std.Tactic.BVDecide.BVExpr.bitblast.denote_blastRotateLeft {α : Type} [Hashable α] [DecidableEq α] {w : Nat} (aig : Sat.AIG α) (target : aig.ShiftTarget w) (assign : α → Bool) (idx : Nat) (hidx : idx < w) :
⟦assign, { aig := (blastRotateLeft aig target).aig, ref := (blastRotateLeft aig target).vec.get idx hidx }⟧ = if hidx2 : idx < target.distance % w then
⟦assign, { aig := aig, ref := target.vec.get (w - target.distance % w + idx) ⋯ }⟧
else ⟦assign, { aig := aig, ref := target.vec.get (idx - target.distance % w) ⋯ }⟧