Equations
- Lean.Meta.Closure.instInhabitedToProcessElement = { default := { fvarId := default, newFVarId := default } }
- visitedLevel : Lean.LevelMap Lean.Level
- visitedExpr : Lean.ExprStructMap Lean.Expr
- nextLevelIdx : Nat
- levelArgs : Array Lean.Level
- newLocalDecls : Array Lean.LocalDecl
- newLocalDeclsForMVars : Array Lean.LocalDecl
- newLetDecls : Array Lean.LocalDecl
- nextExprIdx : Nat
- toProcess : Array Lean.Meta.Closure.ToProcessElement
@[inline]
@[inline]
def
Lean.Meta.Closure.visitLevel
(f : Lean.Level → Lean.Meta.Closure.ClosureM Lean.Level)
(u : Lean.Level)
:
Equations
- One or more equations did not get rendered due to their size.
@[inline]
def
Lean.Meta.Closure.visitExpr
(f : Lean.Expr → Lean.Meta.Closure.ClosureM Lean.Expr)
(e : Lean.Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Remark: This method does not guarantee unique user names. The correctness of the procedure does not rely on unique user names. Recall that the pretty printer takes care of unintended collisions.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
partial def
Lean.Meta.Closure.pickNextToProcessAux
(lctx : Lean.LocalContext)
(i : Nat)
(toProcess : Array Lean.Meta.Closure.ToProcessElement)
(elem : Lean.Meta.Closure.ToProcessElement)
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.Closure.pushLocalDecl
(newFVarId : Lean.FVarId)
(userName : Lean.Name)
(type : Lean.Expr)
(bi : optParam Lean.BinderInfo Lean.BinderInfo.default)
:
Equations
- One or more equations did not get rendered due to their size.
@[inline]
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Meta.Closure.mkLambda decls b = Lean.Meta.Closure.mkBinding true decls b
Equations
- Lean.Meta.Closure.mkForall decls b = Lean.Meta.Closure.mkBinding false decls b
- type : Lean.Expr
- value : Lean.Expr
- levelArgs : Array Lean.Level
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.mkAuxDefinition
(name : Lean.Name)
(type : Lean.Expr)
(value : Lean.Expr)
(zeta : optParam Bool false)
(compile : optParam Bool true)
:
Create an auxiliary definition with the given name, type and value.
The parameters type and value may contain free and meta variables.
A "closure" is computed, and a term of the form name.{u_1 ... u_n} t_1 ... t_m is
returned where u_is are universe parameters and metavariables type and value depend on,
and t_js are free and meta variables type and value depend on.
Equations
- One or more equations did not get rendered due to their size.
def
Lean.Meta.mkAuxDefinitionFor
(name : Lean.Name)
(value : Lean.Expr)
(zeta : optParam Bool false)
:
Similar to mkAuxDefinition, but infers the type of value.
Equations
- Lean.Meta.mkAuxDefinitionFor name value zeta = do let type ← Lean.Meta.inferType value let type : Lean.Expr := Lean.Expr.headBeta type Lean.Meta.mkAuxDefinition name type value zeta true