The recursion principle of pushouts
Content created by Fredrik Bakke.
Created on 2024-04-19.
Last modified on 2024-04-19.
module synthetic-homotopy-theory.recursion-principle-pushouts where
Imports
open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.sections open import foundation.universe-levels open import synthetic-homotopy-theory.cocones-under-spans open import synthetic-homotopy-theory.dependent-cocones-under-spans
Idea
The recursion principle of pushouts¶ asserts that for every type
Y
and cocone on a type
X
, the cocone map
cocone-map f g c Y : (X → Y) → cocone f g Y
has a section.
Definition
The recursion principle of pushouts
recursion-principle-pushout : { l1 l2 l3 l4 : Level} → { S : UU l1} {A : UU l2} {B : UU l3} {X : UU l4} → ( f : S → A) (g : S → B) (c : cocone f g X) → UUω recursion-principle-pushout f g c = {l : Level} {Y : UU l} → section (cocone-map f g {Y = Y} c) module _ { l1 l2 l3 l4 l : Level} {S : UU l1} {A : UU l2} {B : UU l3} {X : UU l4} ( f : S → A) (g : S → B) (c : cocone f g X) ( rec-c : recursion-principle-pushout f g c) ( Y : UU l) where rec-recursion-principle-pushout : cocone f g Y → X → Y rec-recursion-principle-pushout = pr1 rec-c compute-rec-recursion-principle-pushout : (h : cocone f g Y) → htpy-cocone f g ( cocone-map f g c (rec-recursion-principle-pushout h)) ( h) compute-rec-recursion-principle-pushout h = htpy-eq-cocone f g ( cocone-map f g c (rec-recursion-principle-pushout h)) ( h) ( pr2 rec-c h) compute-horizontal-map-rec-recursion-principle-pushout : ( h : cocone f g Y) (a : A) → rec-recursion-principle-pushout h (horizontal-map-cocone f g c a) = horizontal-map-cocone f g h a compute-horizontal-map-rec-recursion-principle-pushout h = pr1 (compute-rec-recursion-principle-pushout h) compute-vertical-map-rec-recursion-principle-pushout : ( h : cocone f g Y) (b : B) → rec-recursion-principle-pushout h (vertical-map-cocone f g c b) = vertical-map-cocone f g h b compute-vertical-map-rec-recursion-principle-pushout h = pr1 (pr2 (compute-rec-recursion-principle-pushout h)) compute-glue-rec-recursion-principle-pushout : (h : cocone f g Y) → statement-coherence-htpy-cocone f g ( cocone-map f g c (rec-recursion-principle-pushout h)) ( h) ( compute-horizontal-map-rec-recursion-principle-pushout h) ( compute-vertical-map-rec-recursion-principle-pushout h) compute-glue-rec-recursion-principle-pushout h = pr2 (pr2 (compute-rec-recursion-principle-pushout h))
Recent changes
- 2024-04-19. Fredrik Bakke. Rewrite rules for pushouts (#1021).