This module contains the types
IndGroupInfo
, a variant ofInductiveVal
with information that applies to a whole group of mutual inductives andIndGroupInst
which extendsIndGroupInfo
with levels and parameters to indicate a instantiation of the group.
One purpose of this abstraction is to make it clear when a function operates on a group as a whole, rather than a specific inductive within the group.
Equations
Instances For
Equations
Instances For
partial def
Lean.Elab.Structural.IndGroupInfo.brecOnName
(info : IndGroupInfo)
(ind : Bool)
(idx : Nat)
:
Instantiates the right .brecOn
or .bInductionOn
for the given type former index,
including universe parameters and fixed prefix.
Equations
Instances For
Equations
Equations
Instances For
def
Lean.Elab.Structural.IndGroupInst.brecOn
(group : IndGroupInst)
(ind : Bool)
(lvl : Level)
(idx : Nat)
:
Instantiates the right .brecOn
or .bInductionOn
for the given type former index,
including universe parameters and fixed prefix.
Equations
Instances For
Figures out the nested type formers of an inductive group, with parameters instantiated and indices still forall-abstracted.
For example given a nested inductive
inductive Tree α where | node : α → Vector (Tree α) n → Tree α
(where n
is an index of Vector
) and the instantiation Tree Int
it will return
#[(n : Nat) → Vector (Tree Int) n]