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_i
s are universe parameters and metavariables type
and value
depend on,
and t_j
s 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