Equations
- Lean.Meta.instReprElimAltInfo = { reprPrec := Lean.Meta.reprElimAltInfo✝ }
Equations
- Lean.Meta.instInhabitedElimAltInfo = { default := { name := default, declName? := default, numFields := default } }
Information about an eliminator as used by induction or cases.
Created from an expression by getElimInfo. This typically contains level metavariables that
are instantiated as we go (e.g. in addImplicitTargets), so this is single use.
- elimExpr : Lean.Expr
- elimType : Lean.Expr
- motivePos : Nat
- altsInfo : Array Lean.Meta.ElimAltInfo
Instances For
Equations
- Lean.Meta.instReprElimInfo = { reprPrec := Lean.Meta.reprElimInfo✝ }
Equations
- Lean.Meta.instInhabitedElimInfo = { default := { elimExpr := default, elimType := default, motivePos := default, targetsPos := default, altsInfo := default } }
def
Lean.Meta.getElimExprInfo
(elimExpr : Lean.Expr)
(baseDeclName? : optParam (Option Lake.Name) none)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Meta.getElimInfo
(elimName : Lake.Name)
(baseDeclName? : optParam (Option Lake.Name) none)
:
Equations
- Lean.Meta.getElimInfo elimName baseDeclName? = do let __do_lift ← Lean.Meta.mkConstWithFreshMVarLevels elimName Lean.Meta.getElimExprInfo __do_lift baseDeclName?
Instances For
Eliminators/recursors may have implicit targets. For builtin recursors, all indices are implicit targets. Given an eliminator and the sequence of explicit targets, this methods returns a new sequence containing implicit and explicit targets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
partial def
Lean.Meta.addImplicitTargets.collect
(elimInfo : Lean.Meta.ElimInfo)
(targets : Array Lean.Expr)
(type : Lean.Expr)
(argIdx : Nat)
(targetIdx : Nat)
(implicits : Array Lean.MVarId)
(targets' : Array Lean.Expr)
:
Equations
- Lean.Meta.instInhabitedCustomEliminator = { default := { typeNames := default, elimName := default } }
Equations
- Lean.Meta.instReprCustomEliminator = { reprPrec := Lean.Meta.reprCustomEliminator✝ }
Equations
- Lean.Meta.instInhabitedCustomEliminators = { default := { map := default } }
Equations
- Lean.Meta.instReprCustomEliminators = { reprPrec := Lean.Meta.reprCustomEliminators✝ }
def
Lean.Meta.addCustomEliminatorEntry
(es : Lean.Meta.CustomEliminators)
(e : Lean.Meta.CustomEliminator)
:
Equations
- Lean.Meta.addCustomEliminatorEntry es e = match es with | { map := map } => { map := Lean.SMap.insert map e.typeNames e.elimName }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.addCustomEliminator declName attrKind = do let e ← Lean.Meta.mkCustomEliminator declName Lean.ScopedEnvExtension.add Lean.Meta.customEliminatorExt e attrKind
Instances For
Equations
- Lean.Meta.getCustomEliminators = do let __do_lift ← Lean.getEnv pure (Lean.ScopedEnvExtension.getState Lean.Meta.customEliminatorExt __do_lift)
Instances For
Equations
- One or more equations did not get rendered due to their size.