Structure methods that require MetaM infrastructure #
If struct is an application of the form S .. with S a constant for a structure,
returns the name of the structure, otherwise throws an error.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Structure projection declaration for mkProjections.
- ref : Syntax
- projName : Name
- paramInfoOverrides : List (Option BinderInfo)
Overrides to param binders to apply after param binder info inference.
Instances For
Adds projection functions to the environment for the one-constructor inductive type named n.
- The
projNames in eachStructProjDeclare used for the names of the declarations added to the environment. - If
instImplicitis true, then generates projections withselfbeing instance implicit.
Notes:
- This function supports everything that
Expr.projsupports (seelean::type_checker::infer_proj). This means we can generate projections for inductive types with one-constructor, even if it is an indexed family (which is not supported by thestructurecommand). - We throw errors in the cases that
Expr.projis not type-correct.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Checks if the expression is of the form S.mk x.1 ... x.n with n nonzero
and S.mk a structure constructor with S one of the recorded structure parents.
Returns x.
Each projection x.i can be either a native projection or from a projection function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Eta reduces all structures satisfying p in the whole expression.
See etaStruct? for reducing single expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instantiates the default value given by the default value function defaultFn.
defaultFnis the default value function returned byLean.getEffectiveDefaultFnForField?orLean.getDefaultFnForField?.levels?is the list of levels to use, and otherwise the levels are inferred.paramsis the list of structure parameters. These are assumed to be correct for the given levels.fieldVal?is a function for getting fields for values, if they exist.
If successful, returns a set of fields used and the resulting default value. Success is expected. Callers should do metacontext backtracking themselves if needed.
Equations
- One or more equations did not get rendered due to their size.