@[inline]
Equations
- Lean.Meta.testHelper e p = do let __do_lift ← p e if __do_lift = true then pure true else do let __do_lift ← Lean.Meta.whnf e p __do_lift
Instances For
@[inline]
def
Lean.Meta.matchHelper?
{α : Type}
(e : Lean.Expr)
(p? : Lean.Expr → Lean.MetaM (Option α))
:
Lean.MetaM (Option α)
Equations
- Lean.Meta.matchHelper? e p? = do let __do_lift ← p? e match __do_lift with | none => do let __do_lift ← Lean.Meta.whnf e p? __do_lift | s => pure s
Instances For
Matches e
with lhs = (rhs : α)
and returns (α, lhs, rhs)
.
Equations
- Lean.Meta.matchEq? e = Lean.Meta.matchHelper? e fun (e : Lean.Expr) => pure (Lean.Expr.eq? e)
Instances For
Equations
- Lean.Meta.matchHEq? e = Lean.Meta.matchHelper? e fun (e : Lean.Expr) => pure (Lean.Expr.heq? e)
Instances For
Return some (α, lhs, rhs)
if e
is of the form @Eq α lhs rhs
or @HEq α lhs α rhs
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.matchFalse e = Lean.Meta.testHelper e fun (e : Lean.Expr) => pure (Lean.Expr.isConstOf e `False)
Instances For
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.
Instances For
Equations
- Lean.Meta.matchConstructorApp? e = do let env ← Lean.getEnv Lean.Meta.matchHelper? e fun (e : Lean.Expr) => pure (Lean.Expr.isConstructorApp? env e)