Polynomial Functors, Lens, and Charts #
This file defines polynomial functors, lenses, and charts. The goal is to provide basic definitions, with their properties and categories defined in later files.
dt: this file is getting long and should maybe be split up more.
The variable y polynomial functor. This is the unit for composition.
Instances For
The monomial functor, also written P(X) = A X^ B, has A as its head type and the constant
family B_a = B as the child type for each each shape a : A .
Instances For
The monomial functor, also written P(X) = A X^ B, has A as its head type and the constant
family B_a = B as the child type for each each shape a : A .
Instances For
The constant polynomial functor P(X) = A X^ PEmpty
Instances For
The linear polynomial functor P(X) = A X
Instances For
The self monomial polynomial functor P(X) = S X^ S
Instances For
The pure power polynomial functor P(X) = X^ B
Instances For
A polynomial functor is representable if it is equivalent to X^A for some type A.
Instances For
Construct a polynomial functor from just a function B, with A derived implicitly.
Instances For
The sum (coproduct) of two polynomial functors P and Q, written as P + Q.
Defined as the sum of the head types and the sum case analysis for the child types.
Note: requires the B universe levels to be the same.
Instances For
Addition of polynomial functors, defined as the sum construction.
Alias of PFunctor.sum.
The sum (coproduct) of two polynomial functors P and Q, written as P + Q.
Defined as the sum of the head types and the sum case analysis for the child types.
Note: requires the B universe levels to be the same.
Instances For
The generalized sum (sigma type) of an indexed family of polynomial functors.
Instances For
The product of two polynomial functors P and Q, written as P * Q.
Defined as the product of the head types and the sum of the child types.
Instances For
Multiplication of polynomial functors, defined as the product construction.
The generalized product (pi type) of an indexed family of polynomial functors.
Instances For
The tensor (also called parallel or Dirichlet) product of two polynomial functors P and Q.
Defined as the product of the head types and the product of the child types.
Instances For
Infix notation for tensor product P ⊗ Q
Instances For
Infix notation for PFunctor.comp P Q
Instances For
Repeated composition P ◃ P ◃ ... ◃ P (n times).
Instances For
Lift a polynomial functor P to a pair of larger universes.
Instances For
Exponential of polynomial functors P ^ Q
Instances For
A polynomial functor is finitely branching if each of its branches is a finite type.
Instances
Instances
- decidableEq_A : DecidableEq P.A
- decidableEq_B (a : P.A) : DecidableEq (P.B a)
Instances
PFunctor where the output type is constant over an arbitrary input type.
Instances For
An equivalence between two polynomial functors P and Q, written P ≃ₚ Q, is given by an
equivalence of the A types and an equivalence between the B types for each a : A.
An equivalence between the
AtypesAn equivalence between the
Btypes for eacha : A
Instances For
An equivalence between two polynomial functors P and Q, written P ≃ₚ Q, is given by an
equivalence of the A types and an equivalence between the B types for each a : A.
Instances For
The identity equivalence between a polynomial functor P and itself.
Instances For
The inverse of an equivalence between polynomial functors.
Instances For
The composition of two equivalences between polynomial functors.
Instances For
Equivalence between two polynomial functors P and Q that are equal.
Instances For
Cast-normalization helper for equivB under equal equivA images.
Cast-normalization helper for symm.equivB under equal symm.equivA images.
Specialized cast-normalization for e followed by e.symm.
Specialized cast-normalization for e.symm followed by e.
Forward roundtrip: applying equivB then symm.equivB gives a cast.
Reverse roundtrip: applying symm.equivB then equivB gives a cast.
A lens between two polynomial functors P and Q is a pair of a function:
Instances For
A chart between two polynomial functors P and Q is a pair of a function: