Morphisms of polynomial endofunctors

Content created by Fredrik Bakke.

Created on 2025-10-28.
Last modified on 2025-10-28.

module trees.morphisms-polynomial-endofunctors where
Imports
open import foundation.action-on-identifications-functions
open import foundation.binary-homotopies
open import foundation.commuting-squares-of-homotopies
open import foundation.commuting-squares-of-maps
open import foundation.commuting-triangles-of-maps
open import foundation.cones-over-cospan-diagrams
open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.equality-dependent-function-types
open import foundation.equivalences
open import foundation.fibers-of-maps
open import foundation.function-types
open import foundation.functoriality-dependent-pair-types
open import foundation.fundamental-theorem-of-identity-types
open import foundation.homotopies
open import foundation.homotopy-induction
open import foundation.identity-types
open import foundation.implicit-function-types
open import foundation.morphisms-arrows
open import foundation.precomposition-functions
open import foundation.retracts-of-types
open import foundation.sections
open import foundation.structure-identity-principle
open import foundation.transport-along-identifications
open import foundation.truncated-types
open import foundation.truncation-levels
open import foundation.universe-levels
open import foundation.whiskering-homotopies-composition

open import foundation-core.equality-dependent-pair-types
open import foundation-core.retractions
open import foundation-core.torsorial-type-families

open import trees.natural-transformations-polynomial-endofunctors
open import trees.polynomial-endofunctors

Idea

Given two polynomial endofunctors P ≐ (A ◃ B) and Q ≐ (C ◃ D), a morphism α from P to Q consists of a pair of maps

  α₀ : A → C
  α₁ : (a : A) → D (α₀ a) → B a.

Definitions

Morphisms of polynomial endofunctors

hom-polynomial-endofunctor :
  {l1 l2 l3 l4 : Level} 
  polynomial-endofunctor l1 l2 
  polynomial-endofunctor l3 l4  UU (l1  l2  l3  l4)
hom-polynomial-endofunctor (A , B) (C , D) =
  Σ (A  C)  α₀  ((a : A)  D (α₀ a)  B a))

module _
  {l1 l2 l3 l4 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  (α : hom-polynomial-endofunctor P Q)
  where

  shape-hom-polynomial-endofunctor :
    shape-polynomial-endofunctor P  shape-polynomial-endofunctor Q
  shape-hom-polynomial-endofunctor = pr1 α

  position-hom-polynomial-endofunctor :
    (a : shape-polynomial-endofunctor P) 
    position-polynomial-endofunctor Q (shape-hom-polynomial-endofunctor a) 
    position-polynomial-endofunctor P a
  position-hom-polynomial-endofunctor = pr2 α

  type-hom-polynomial-endofunctor :
    {l3 : Level} {X : UU l3} 
    type-polynomial-endofunctor P X 
    type-polynomial-endofunctor Q X
  type-hom-polynomial-endofunctor {X = X} =
    map-Σ
      ( λ c  position-polynomial-endofunctor Q c  X)
      ( shape-hom-polynomial-endofunctor)
      ( λ a  precomp (position-hom-polynomial-endofunctor a) X)

The identity morphism

id-hom-polynomial-endofunctor :
  {l1 l2 : Level}
  (P : polynomial-endofunctor l1 l2) 
  hom-polynomial-endofunctor P P
id-hom-polynomial-endofunctor P = (id ,  a  id))

Composition of morphisms

comp-hom-polynomial-endofunctor :
  {l1 l2 l3 l4 l5 l6 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  (R : polynomial-endofunctor l5 l6) 
  hom-polynomial-endofunctor Q R 
  hom-polynomial-endofunctor P Q 
  hom-polynomial-endofunctor P R
comp-hom-polynomial-endofunctor P Q R (β₀ , β₁) (α₀ , α₁) =
  ( β₀  α₀ ,  a  α₁ a  β₁ (α₀ a)))

Properties

Characterizing equality of morphisms

module _
  {l1 l2 l3 l4 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  where

  htpy-hom-polynomial-endofunctor :
    (α β : hom-polynomial-endofunctor P Q)  UU (l1  l2  l3  l4)
  htpy-hom-polynomial-endofunctor α β =
    Σ ( shape-hom-polynomial-endofunctor P Q α ~
        shape-hom-polynomial-endofunctor P Q β)
      ( λ H 
        (a : shape-polynomial-endofunctor P)
        (d :
          position-polynomial-endofunctor Q
            ( shape-hom-polynomial-endofunctor P Q α a)) 
        position-hom-polynomial-endofunctor P Q α a d 
        position-hom-polynomial-endofunctor P Q β a
          ( tr (position-polynomial-endofunctor Q) (H a) d))

  refl-htpy-hom-polynomial-endofunctor :
    (α : hom-polynomial-endofunctor P Q)  htpy-hom-polynomial-endofunctor α α
  refl-htpy-hom-polynomial-endofunctor α = (refl-htpy , λ a d  refl)

  htpy-eq-hom-polynomial-endofunctor :
    (α β : hom-polynomial-endofunctor P Q) 
    (α  β)  htpy-hom-polynomial-endofunctor α β
  htpy-eq-hom-polynomial-endofunctor α .α refl =
    refl-htpy-hom-polynomial-endofunctor α

  abstract
    is-torsorial-htpy-hom-polynomial-endofunctor :
      (α : hom-polynomial-endofunctor P Q) 
      is-torsorial (htpy-hom-polynomial-endofunctor α)
    is-torsorial-htpy-hom-polynomial-endofunctor α =
      is-torsorial-Eq-structure
        ( is-torsorial-htpy (shape-hom-polynomial-endofunctor P Q α))
        ( shape-hom-polynomial-endofunctor P Q α , refl-htpy)
        ( is-torsorial-binary-htpy (position-hom-polynomial-endofunctor P Q α))

  abstract
    is-equiv-htpy-eq-hom-polynomial-endofunctor :
      (α β : hom-polynomial-endofunctor P Q) 
      is-equiv (htpy-eq-hom-polynomial-endofunctor α β)
    is-equiv-htpy-eq-hom-polynomial-endofunctor α =
      fundamental-theorem-id
        ( is-torsorial-htpy-hom-polynomial-endofunctor α)
        ( htpy-eq-hom-polynomial-endofunctor α)

  equiv-htpy-eq-hom-polynomial-endofunctor :
    (α β : hom-polynomial-endofunctor P Q) 
    (α  β)  htpy-hom-polynomial-endofunctor α β
  equiv-htpy-eq-hom-polynomial-endofunctor α β =
    ( htpy-eq-hom-polynomial-endofunctor α β ,
      is-equiv-htpy-eq-hom-polynomial-endofunctor α β)

  eq-htpy-hom-polynomial-endofunctor :
    (α β : hom-polynomial-endofunctor P Q) 
    htpy-hom-polynomial-endofunctor α β 
    α  β
  eq-htpy-hom-polynomial-endofunctor α β =
    map-inv-equiv (equiv-htpy-eq-hom-polynomial-endofunctor α β)

Truncatedness of the type of morphisms

If the shapes of and the positions of are -truncated then the type of morphisms is -truncated.

module _
  {l1 l2 l3 l4 l5 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  where

  abstract
    is-trunc-hom-polynomial-endofunctor :
      (k : 𝕋) 
      is-trunc k (shape-polynomial-endofunctor Q) 
      ( (a : shape-polynomial-endofunctor P) 
        is-trunc k (position-polynomial-endofunctor P a)) 
      is-trunc k (hom-polynomial-endofunctor P Q)
    is-trunc-hom-polynomial-endofunctor k hQ hP =
      is-trunc-Σ
        ( is-trunc-function-type k hQ)
        ( λ f  is-trunc-Π k  a  is-trunc-function-type k (hP a)))

Morphisms are natural transformations

Morphisms of polynomial endofunctors define natural transformations.

module _
  {l1 l2 l3 l4 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  (α : hom-polynomial-endofunctor P Q)
  where

  naturality-hom-polynomial-endofunctor :
    {l5 l6 : Level} {X : UU l5} {Y : UU l6} (f : X  Y) 
    coherence-square-maps
      ( map-polynomial-endofunctor P f)
      ( type-hom-polynomial-endofunctor P Q α)
      ( type-hom-polynomial-endofunctor P Q α)
      ( map-polynomial-endofunctor Q f)
  naturality-hom-polynomial-endofunctor f = refl-htpy

  natural-transformation-hom-polynomial-endofunctor :
    {l : Level}  natural-transformation-polynomial-endofunctor l P Q
  natural-transformation-hom-polynomial-endofunctor =
    ( type-hom-polynomial-endofunctor P Q α ,
      naturality-hom-polynomial-endofunctor)

  hom-arrow-hom-polynomial-endofunctor :
    {l5 l6 : Level} {X : UU l5} {Y : UU l6} (f : X  Y) 
    hom-arrow (map-polynomial-endofunctor P f) (map-polynomial-endofunctor Q f)
  hom-arrow-hom-polynomial-endofunctor f =
    ( type-hom-polynomial-endofunctor P Q α ,
      type-hom-polynomial-endofunctor P Q α ,
      naturality-hom-polynomial-endofunctor f)

  cone-hom-polynomial-endofunctor :
    {l5 l6 : Level} {X : UU l5} {Y : UU l6} (f : X  Y) 
    cone
      ( type-hom-polynomial-endofunctor P Q α)
      ( map-polynomial-endofunctor Q f)
      ( type-polynomial-endofunctor P X)
  cone-hom-polynomial-endofunctor f =
    cone-hom-arrow
      ( map-polynomial-endofunctor P f)
      ( map-polynomial-endofunctor Q f)
      ( hom-arrow-hom-polynomial-endofunctor f)

Natural transformations define morphisms

Given a natural transformation α : P ⇒ Q then we have an associated morphism given on shapes by a ↦ pr1 (α₀ {P₁ a} (a , id)) : P₀ → Q₀ and on positions by a ↦ pr2 (α₀ {P₁ a} (a , id)) : (a : P₀) → Q₁ _ → P₁ a.

module _
  {l1 l2 l3 l4 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  (α : natural-transformation-polynomial-endofunctor l2 P Q)
  where

  shape-natural-transformation-polynomial-endofunctor :
    shape-polynomial-endofunctor P  shape-polynomial-endofunctor Q
  shape-natural-transformation-polynomial-endofunctor a =
    pr1 (map-natural-transformation-polynomial-endofunctor P Q α (a , id))

  position-natural-transformation-polynomial-endofunctor :
    (a : shape-polynomial-endofunctor P) 
    position-polynomial-endofunctor Q
      ( shape-natural-transformation-polynomial-endofunctor a) 
    position-polynomial-endofunctor P a
  position-natural-transformation-polynomial-endofunctor a =
    pr2 (map-natural-transformation-polynomial-endofunctor P Q α (a , id))

  hom-natural-transformation-polynomial-endofunctor :
    hom-polynomial-endofunctor P Q
  hom-natural-transformation-polynomial-endofunctor =
    ( shape-natural-transformation-polynomial-endofunctor ,
      position-natural-transformation-polynomial-endofunctor)

Computing the fibers of the induced natural transformation

module _
  {l1 l2 l3 l4 l5 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  (α@(α₀ , α₁) : hom-polynomial-endofunctor P Q)
  (let P₁ = position-polynomial-endofunctor P)
  (let Q₀ = shape-polynomial-endofunctor Q)
  (let Q₁ = position-polynomial-endofunctor Q)
  {X : UU l5}
  where

  fiber-type-hom-polynomial-endofunctor :
    (c : Q₀) (x : Q₁ c  X)  UU (l1  l2  l3  l4  l5)
  fiber-type-hom-polynomial-endofunctor c x =
    Σ ( fiber α₀ c)
      ( λ (a , p) 
        Σ (P₁ a  X)  x'  coherence-square-maps (tr Q₁ p) (α₁ a) x x'))

  compute-fiber-type-hom-polynomial-endofunctor :
    (q@(c , x) : type-polynomial-endofunctor Q X) 
    fiber (type-hom-polynomial-endofunctor P Q α) q 
    fiber-type-hom-polynomial-endofunctor c x
  compute-fiber-type-hom-polynomial-endofunctor q@(c , x) =
    equivalence-reasoning
      fiber (type-hom-polynomial-endofunctor P Q α {X = X}) q
       Σ ( fiber α₀ c)
          ( λ (a , p) 
            fiber
              ( precomp (α₁ a) X)
              ( inv-tr  c'  Q₁ c'  X) p x))
        by
        compute-fiber-map-Σ
          ( λ c  position-polynomial-endofunctor Q c  X)
          ( α₀)
          ( λ a  precomp (α₁ a) X)
          ( q)
       Σ ( fiber α₀ c)
          ( λ (a , p) 
            Σ (P₁ a  X)
               x' 
                coherence-triangle-maps'
                  ( inv-tr  c'  Q₁ c'  X) p x)
                  ( x')
                  ( α₁ a)))
        by
        equiv-tot
          ( λ (a , p) 
            compute-coherence-triangle-fiber-precomp'
              ( α₁ a)
              ( X)
              ( inv-tr  c'  Q₁ c'  X) p x))
       Σ ( fiber α₀ c)
          ( λ (a , p) 
            Σ (P₁ a  X)  x'  coherence-square-maps (tr Q₁ p) (α₁ a) x x'))
        by
        equiv-tot
          ( λ (a , p) 
            equiv-tot
              ( λ x' 
                equiv-tr
                  ( λ u  coherence-triangle-maps' u x' (α₁ a))
                  ( ( tr-function-type-fixed-codomain Q₁ X (inv p) x) 
                    ( ap  q  x  tr Q₁ q) (inv-inv p)))))

Comparison between morphisms and natural transformations

Morphisms of polynomial endofunctors form a retract of natural transformations, and this map is a section on shapes.

module _
  {l1 l2 l3 l4 : Level}
  (P : polynomial-endofunctor l1 l2)
  (Q : polynomial-endofunctor l3 l4)
  where

  is-retraction-hom-natural-transformation-polynomial-endofunctor :
    is-retraction
      ( λ α  natural-transformation-hom-polynomial-endofunctor P Q α {l2})
      ( hom-natural-transformation-polynomial-endofunctor P Q)
  is-retraction-hom-natural-transformation-polynomial-endofunctor α = refl

  is-section-type-hom-natural-transformation-polynomial-endofunctor :
    (α : natural-transformation-polynomial-endofunctor l2 P Q)
    (X : UU l2) 
    map-natural-transformation-polynomial-endofunctor P Q
      ( natural-transformation-hom-polynomial-endofunctor P Q
        ( hom-natural-transformation-polynomial-endofunctor P Q α)) ~
    map-natural-transformation-polynomial-endofunctor P Q α {X}
  is-section-type-hom-natural-transformation-polynomial-endofunctor
    α X (a , x) =
    inv
      ( naturality-natural-transformation-polynomial-endofunctor P Q α x
        ( a , id))

  retract-hom-natural-transformation-polynomial-endofunctor :
    ( hom-polynomial-endofunctor P Q) retract-of
    ( natural-transformation-polynomial-endofunctor l2 P Q)
  retract-hom-natural-transformation-polynomial-endofunctor =
    ( λ f  natural-transformation-hom-polynomial-endofunctor P Q f {l2}) ,
    ( hom-natural-transformation-polynomial-endofunctor P Q) ,
    ( is-retraction-hom-natural-transformation-polynomial-endofunctor)

Comment. If these notions were to be equivalent we would have needed natural transformations to satisfy the following equality:

which is an instance of the unfolded condition that the naturality square of a composite map is given by pasting of squares.

Recent changes