This module contains the implementation of a bitblaster for BitVec expressions (BVExpr).
That is, expressions that evaluate to BitVec again. Its used as a building block in bitblasting
general BitVec problems with boolean substructure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Std.Tactic.BVDecide.BVExpr.instHashableKey = { hash := fun (key : Std.Tactic.BVDecide.BVExpr.Cache.Key) => hash key.expr }
def Std.Tactic.BVDecide.BVExpr.bitblast {w : Nat} (aig : Sat.AIG BVBit) (input : WithCache (BVExpr w) aig) :
Return aig w
Equations
- Std.Tactic.BVDecide.BVExpr.bitblast aig { val := expr, cache := cache } = Std.Tactic.BVDecide.BVExpr.bitblast.goCache aig expr cache
Instances For
@[irreducible]
def Std.Tactic.BVDecide.BVExpr.bitblast.go {w : Nat} (aig : Sat.AIG BVBit) (expr : BVExpr w) (cache : Cache aig) :
Return aig w
Equations
- One or more equations did not get rendered due to their size.
- Std.Tactic.BVDecide.BVExpr.bitblast.go aig (Std.Tactic.BVDecide.BVExpr.var a) cache = { result := ⟨Std.Tactic.BVDecide.BVExpr.bitblast.blastVar aig { ident := a }, ⋯⟩, cache := cache.cast ⋯ }