Returns true
if e
is True
, False
, or a literal value.
See LitValues
for supported literals.
Equations
- Lean.Meta.Grind.isInterpreted e = if (e.isTrue || e.isFalse) = true then pure true else do let y ← pure PUnit.unit (fun (y : PUnit) => Lean.Meta.isLitValue e) y
Instances For
Creates an ENode
for e
if one does not already exist.
This method assumes e
has been hashconsed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns the root element in the equivalence class of e
.
Equations
- Lean.Meta.Grind.getRoot e = do let __discr ← Lean.Meta.Grind.getENode? e match __discr with | some n => pure n.root | x => pure e
Instances For
Returns the next element in the equivalence class of e
.
Equations
- Lean.Meta.Grind.getNext e = do let __discr ← Lean.Meta.Grind.getENode? e match __discr with | some n => pure n.next | x => pure e
Instances For
@[inline]
Equations
Instances For
def
Lean.Meta.Grind.addEqCore
(lhs : Lean.Expr)
(rhs : Lean.Expr)
(proof : Lean.Expr)
(isHEq : Bool)
:
Equations
- Lean.Meta.Grind.addEqCore lhs rhs proof isHEq = do Lean.Meta.Grind.addEqStep lhs rhs proof isHEq Lean.Meta.Grind.addEqCore.processTodo
Instances For
Equations
- Lean.Meta.Grind.addEq lhs rhs proof = Lean.Meta.Grind.addEqCore lhs rhs proof false
Instances For
Equations
- Lean.Meta.Grind.addHEq lhs rhs proof = Lean.Meta.Grind.addEqCore lhs rhs proof true