Displayed families over PFunctor.FreeM #
This file defines displayed-family shapes over the free monad of a polynomial functor.
For a polynomial/container P, a payload type α, and a tree
s : PFunctor.FreeM P α, FreeM.Displayed D s is the family obtained by
interpreting terminal payloads through D.leaf and internal positions through
D.node.
This is the common substrate behind several familiar structures:
- decorations, where each node stores metadata and recursively decorates every child;
- paths, where each node chooses one child and recursively follows that child;
- compact observations, where some nodes may be skipped or otherwise reinterpreted.
Categorically, this is the displayed algebra generated over the initial
FreeM algebra. A Displayed.Section D is the corresponding displayed
catamorphism: it chooses data in the displayed fiber over every tree.
A displayed-family shape over FreeM P α.
The leaf argument interprets terminal payloads. The node argument
interprets a polynomial position a : P.A, given the already-generated
displayed families for each child b : P.B a.
Special cases include node decorations, branch paths, and compact transcript views that suppress uninformative nodes.
- leaf : α → Sort w
Instances For
Evaluate a displayed-family shape over a concrete FreeM tree.
This generates the displayed fiber at every tree by recursion on the free polynomial structure.
Instances For
A displayed family over an existing displayed family.
If D assigns a fiber to each FreeM tree, then an OverShape D assigns a
second-layer fiber over each inhabitant of Displayed D s. This is the
generic form of a dependent decoration over a base decoration.
Instances For
Evaluate a displayed-over shape over concrete displayed data.
This is the dependent analogue of Displayed: the base displayed data chooses
which second-layer fiber is available at every node.
Instances For
The total space of a displayed family together with one displayed-over layer.
Instances For
A section chooses displayed data over every FreeM tree.
Instances For
Construct a section from constructor-local data.
This is the displayed-family specialization of the dependent recursor for
FreeM.
Instances For
A morphism between two displayed families over the same FreeM tree.
Instances For
Identity morphism of a displayed family.
Instances For
Composition of displayed-family morphisms.
Instances For
A constructor-local morphism between displayed-family shapes.
The mapChild field maps one node layer, given already-mapped recursive child
data.
Instances For
The recursive function underlying LocalHom.toHom.
Instances For
Interpret a constructor-local morphism as a tree-indexed displayed morphism.
Instances For
A morphism between displayed-over families, lying over a morphism between their base displayed families.
When the base morphism is Displayed.Hom.id, this is a fiberwise morphism over
the same displayed data.
Instances For
Identity morphism of a displayed-over family.
Instances For
Composition of displayed-over morphisms over composed base morphisms.
Instances For
Map displayed-over data by a displayed-over morphism.
Instances For
A constructor-local morphism between displayed-over families over the same base displayed family.
This is the local recursion principle for maps that change only the over-layer data and keep the base displayed data fixed.
Instances For
The recursive function underlying FiberLocalHom.toHom.
Instances For
Interpret a constructor-local fiber morphism as a displayed-over morphism.
Instances For
A constructor-local morphism between displayed-over families, lying over a constructor-local morphism between their base displayed families.
- mapChild (a : P.A) (childD : P.B a → Sort w) (childE : P.B a → Sort w₂) (baseChild : (b : P.B a) → childD b → childE b) (overR : (b : P.B a) → childD b → Sort w₅) (overS : (b : P.B a) → childE b → Sort w₆) : ((b : P.B a) → (d : childD b) → overR b d → overS b (baseChild b d)) → (d : D.node a childD) → R.node a childD overR d → S.node a childE overS (η.mapChild a childD childE baseChild d)
Instances For
The recursive function underlying Over.LocalHom.toHom.
Instances For
Interpret a constructor-local over morphism as a displayed-over morphism over the interpreted base morphism.
Instances For
Map displayed data by an interpreted morphism.