This structure contains the data carried in InductiveElabStep1 that are solely used in
mutual coinductive predicate elaboration.
- declId : SyntaxDeclaration Id from the original InductiveView
- declName : NameDeclaration name of the predicate 
- ref : SyntaxRef from the original InductiveView
- modifiers : ModifiersModifiers from the original InductiveView
- Constructor refs from the original - InductiveView
- isGreatest : BoolThe flag that is trueif the predicate was defined viacoinductivekeyword andfalseotherwise. When we elaborate a mutual definition, we allow mixingcoinductiveandinductivekeywords, and hence we need to record this information.
Instances For
Equations
Instances For
Equations
- Lean.Elab.Command.addFunctorPostfix x✝ = x✝ ++ `_functor
Instances For
Equations
Instances For
Equations
- Lean.Elab.Command.removeFunctorPostfixInCtor (p.str s) = (Lean.Elab.Command.removeFunctorPostfix p).str s
- Lean.Elab.Command.removeFunctorPostfixInCtor x✝ = panicWithPosWithDecl "Lean.Elab.Coinductive" "Lean.Elab.Command.removeFunctorPostfixInCtor" 124 13 "UnexpectedName"
Instances For
Main entry point for elaborating mutual coinductive predicates. This function is called after generating a flat inductive and adding it to the environment.
We look at corresponding existential form of the flat inductive (see Meta.MkIffOfInductiveProp),
use it to populate PreDefinitions that correspond to the predicates, and then we call
the PartialFixpoint machinery to register them as (co)inductive predicates.
Finally, we generate constructors for each of the predicates, that correspond to the constructors that were given by the user.
Equations
- One or more equations did not get rendered due to their size.