Given a structure S
, Lean automatically creates an auxiliary definition (projection function)
for each field. This structure caches information about these auxiliary definitions.
- ctorName : Lake.Name
Constructor associated with the auxiliary projection function.
- numParams : Nat
Number of parameters in the structure
- i : Nat
The field index associated with the auxiliary projection function.
- fromClass : Bool
true
if the structure is a class.
Instances For
Equations
- Lean.instInhabitedProjectionFunctionInfo = { default := { ctorName := default, numParams := default, i := default, fromClass := default } }
@[export lean_mk_projection_info]
Equations
- Lean.mkProjectionInfoEx ctorName numParams i fromClass = { ctorName := ctorName, numParams := numParams, i := i, fromClass := fromClass }
Instances For
@[export lean_projection_info_from_class]
Equations
- Lean.ProjectionFunctionInfo.fromClassEx info = info.fromClass
Instances For
@[export lean_add_projection_info]
def
Lean.addProjectionFnInfo
(env : Lean.Environment)
(projName : Lake.Name)
(ctorName : Lake.Name)
(numParams : Nat)
(i : Nat)
(fromClass : Bool)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[export lean_get_projection_info]
Equations
- Lean.Environment.getProjectionFnInfo? env projName = Lean.MapDeclarationExtension.find? Lean.projectionFnInfoExt env projName
Instances For
Equations
- Lean.Environment.isProjectionFn env declName = Lean.MapDeclarationExtension.contains Lean.projectionFnInfoExt env declName
Instances For
If projName
is the name of a projection function, return the associated structure name
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.isProjectionFn
{m : Type → Type}
[Lean.MonadEnv m]
[Monad m]
(declName : Lake.Name)
:
m Bool
Equations
- Lean.isProjectionFn declName = do let __do_lift ← Lean.getEnv pure (Lean.Environment.isProjectionFn __do_lift declName)
Instances For
def
Lean.getProjectionFnInfo?
{m : Type → Type}
[Lean.MonadEnv m]
[Monad m]
(declName : Lake.Name)
:
Equations
- Lean.getProjectionFnInfo? declName = do let __do_lift ← Lean.getEnv pure (Lean.Environment.getProjectionFnInfo? __do_lift declName)