This module contains the verification of the BitVec expressions (BVExpr) bitblaster from
Impl.Expr.
@[reducible, inline]
abbrev Std.Tactic.BVDecide.BVExpr.Cache.Inv (assign : Assignment) (aig : Sat.AIG BVBit) (cache : Cache aig) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Std.Tactic.BVDecide.BVExpr.Cache.Inv_cast {aig1 : Sat.AIG BVBit} {assign : Assignment} {aig2 : Sat.AIG BVBit} (cache : Cache aig1) (hpref : Sat.AIG.IsPrefix aig1.decls aig2.decls) (hinv : Inv assign aig1 cache) :
theorem Std.Tactic.BVDecide.BVExpr.Cache.Inv_insert {aig : Sat.AIG BVBit} {w : Nat} {assign : Assignment} (cache : Cache aig) (expr : BVExpr w) (refs : aig.RefVec w) (hinv : Inv assign aig cache) (hrefs :
∀ (idx : Nat) (hidx : idx < w),
⟦assign.toAIGAssignment, { aig := aig, ref := refs.get idx hidx }⟧ = (eval assign expr).getLsbD idx) :
theorem Std.Tactic.BVDecide.BVExpr.bitblast.goCache_denote_eq {w : Nat} (aig : Sat.AIG BVBit) (expr : BVExpr w) (assign : Assignment) (cache : Cache aig) (hinv : Cache.Inv assign aig cache) (idx : Nat) (hidx : idx < w) :
theorem Std.Tactic.BVDecide.BVExpr.bitblast.go_denote_eq {w : Nat} (aig : Sat.AIG BVBit) (expr : BVExpr w) (assign : Assignment) (cache : Cache aig) (hinv : Cache.Inv assign aig cache) (idx : Nat) (hidx : idx < w) :