Provides the logic for reifying BitVec
expressions.
A reified version of an Expr
representing a BVExpr
.
- width : Nat
- bvExpr : Std.Tactic.BVDecide.BVExpr self.width
The reified expression.
- evalsAtAtoms : Lean.Elab.Tactic.BVDecide.Frontend.M Lean.Expr
A proof that
bvExpr.eval atomsAssignment = originalBVExpr
. - expr : Lean.Expr
A cache for
toExpr bvExpr
.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.mkBVRefl w expr = Lean.mkApp2 (Lean.mkConst `Eq.refl [1]) (Lean.mkApp (Lean.mkConst `BitVec) (Lean.toExpr w)) expr
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.getNatOrBvValue?
(ty : Lean.Expr)
(expr : Lean.Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reify an Expr
that's a BitVec
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.shiftConstLikeReflection
(distance : Nat)
(innerExpr : Lean.Expr)
(shiftOp : Nat → Std.Tactic.BVDecide.BVUnOp)
(shiftOpName : Lake.Name)
(congrThm : Lake.Name)
:
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.rotateReflection
(x : Lean.Expr)
(distanceExpr : Lean.Expr)
(innerExpr : Lean.Expr)
(rotateOp : Nat → Std.Tactic.BVDecide.BVUnOp)
(rotateOpName : Lake.Name)
(congrThm : Lake.Name)
:
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.shiftConstReflection
(x : Lean.Expr)
(β : Lean.Expr)
(distanceExpr : Lean.Expr)
(innerExpr : Lean.Expr)
(shiftOp : Nat → Std.Tactic.BVDecide.BVUnOp)
(shiftOpName : Lake.Name)
(congrThm : Lake.Name)
:
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.shiftReflection
(x : Lean.Expr)
(β : Lean.Expr)
(distanceExpr : Lean.Expr)
(innerExpr : Lean.Expr)
(shiftOp : {m n : Nat} → Std.Tactic.BVDecide.BVExpr m → Std.Tactic.BVDecide.BVExpr n → Std.Tactic.BVDecide.BVExpr m)
(shiftOpName : Lake.Name)
(congrThm : Lake.Name)
:
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.binaryReflection
(lhsExpr : Lean.Expr)
(rhsExpr : Lean.Expr)
(op : Std.Tactic.BVDecide.BVBinOp)
(congrThm : Lake.Name)
:
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.binaryCongrProof
(lhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr)
(rhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr)
(lhsExpr : Lean.Expr)
(rhsExpr : Lean.Expr)
(congrThm : Lean.Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.unaryReflection
(innerExpr : Lean.Expr)
(op : Std.Tactic.BVDecide.BVUnOp)
(congrThm : Lake.Name)
:
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr.of.unaryCongrProof
(inner : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVExpr)
(innerExpr : Lean.Expr)
(congrProof : Lean.Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.