Provides the logic for reifying BitVec
problems with boolean substructure.
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkRefl expr = Lean.mkApp2 (Lean.mkConst `Eq.refl [1]) (Lean.mkConst `Bool) expr
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkTrans
(x : Lean.Expr)
(y : Lean.Expr)
(z : Lean.Expr)
(hxy : Lean.Expr)
(hyz : Lean.Expr)
:
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkTrans x y z hxy hyz = Lean.mkApp6 (Lean.mkConst `Eq.trans [1]) (Lean.mkConst `Bool) x y z hxy hyz
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.ofPred
(bvPred : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVPred)
:
Construct a ReifiedBVLogical
from ReifiedBVPred
by wrapping it as an atom.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct an uninterrpeted Bool
atom from t
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build a reified version of the constant val
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate
(lhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(rhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(lhsExpr : Lean.Expr)
(rhsExpr : Lean.Expr)
(gate : Std.Tactic.BVDecide.Gate)
:
Construct the reified version of applying the gate in gate
to lhs
and rhs
.
This function assumes that lhsExpr
and rhsExpr
are the corresponding expressions to lhs
and rhs
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate.congrThmOfGate
(gate : Std.Tactic.BVDecide.Gate)
:
Equations
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate.congrThmOfGate Std.Tactic.BVDecide.Gate.and = `Std.Tactic.BVDecide.Reflect.Bool.and_congr
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate.congrThmOfGate Std.Tactic.BVDecide.Gate.xor = `Std.Tactic.BVDecide.Reflect.Bool.xor_congr
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate.congrThmOfGate Std.Tactic.BVDecide.Gate.beq = `Std.Tactic.BVDecide.Reflect.Bool.beq_congr
- Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkGate.congrThmOfGate Std.Tactic.BVDecide.Gate.imp = `Std.Tactic.BVDecide.Reflect.Bool.imp_congr
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkNot
(sub : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(subExpr : Lean.Expr)
:
Construct the reified version of Bool.not subExpr
.
This function assumes that subExpr
is the expression corresponding to sub
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical.mkIte
(discr : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(lhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(rhs : Lean.Elab.Tactic.BVDecide.Frontend.ReifiedBVLogical)
(discrExpr : Lean.Expr)
(lhsExpr : Lean.Expr)
(rhsExpr : Lean.Expr)
:
Construct the reified version of if discrExpr then lhsExpr else rhsExpr
.
This function assumes that discrExpr
, lhsExprand
rhsExprare the corresponding expressions to
`discr,
lhsand
rhs`.
Equations
- One or more equations did not get rendered due to their size.