Pushouts of pointed types
Content created by Egbert Rijke, Fredrik Bakke and maybemabeline.
Created on 2023-05-03.
Last modified on 2025-02-14.
module synthetic-homotopy-theory.pushouts-of-pointed-types where
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.universe-levels open import structured-types.pointed-maps open import structured-types.pointed-types open import synthetic-homotopy-theory.cocones-under-pointed-span-diagrams open import synthetic-homotopy-theory.pushouts
Idea
Given a span of pointed maps, then the pushout is in fact a pushout diagram in the (wild) category of pointed types.
Definition
module _ {l1 l2 l3 : Level} {S : Pointed-Type l1} {A : Pointed-Type l2} {B : Pointed-Type l3} (f : S →∗ A) (g : S →∗ B) where type-pushout-Pointed-Type : UU (l1 ⊔ l2 ⊔ l3) type-pushout-Pointed-Type = pushout (map-pointed-map f) (map-pointed-map g) point-pushout-Pointed-Type : type-pushout-Pointed-Type point-pushout-Pointed-Type = inl-pushout ( map-pointed-map f) ( map-pointed-map g) ( point-Pointed-Type A) pushout-Pointed-Type : Pointed-Type (l1 ⊔ l2 ⊔ l3) pushout-Pointed-Type = ( type-pushout-Pointed-Type , point-pushout-Pointed-Type)
Properties
The pushout of a pointed map along a pointed map is pointed
module _ {l1 l2 l3 : Level} {S : Pointed-Type l1} {A : Pointed-Type l2} {B : Pointed-Type l3} (f : S →∗ A) (g : S →∗ B) where inl-pushout-Pointed-Type : A →∗ pushout-Pointed-Type f g inl-pushout-Pointed-Type = ( inl-pushout (map-pointed-map f) (map-pointed-map g) , refl) inr-pushout-Pointed-Type : B →∗ pushout-Pointed-Type f g inr-pushout-Pointed-Type = ( ( inr-pushout (map-pointed-map f) (map-pointed-map g)) , ( ( ap ( inr-pushout (map-pointed-map f) (map-pointed-map g)) ( inv (preserves-point-pointed-map g))) ∙ ( inv ( glue-pushout ( map-pointed-map f) ( map-pointed-map g) ( point-Pointed-Type S)))) ∙ ( ap ( inl-pushout (map-pointed-map f) (map-pointed-map g)) ( preserves-point-pointed-map f)))
The cogap map for pushouts of pointed types
module _ {l1 l2 l3 : Level} {S : Pointed-Type l1} {A : Pointed-Type l2} {B : Pointed-Type l3} (f : S →∗ A) (g : S →∗ B) where map-cogap-Pointed-Type : {l4 : Level} {X : Pointed-Type l4} → cocone-Pointed-Type f g X → type-pushout-Pointed-Type f g → type-Pointed-Type X map-cogap-Pointed-Type c = cogap ( map-pointed-map f) ( map-pointed-map g) ( cocone-cocone-Pointed-Type f g c) cogap-Pointed-Type : {l4 : Level} {X : Pointed-Type l4} → cocone-Pointed-Type f g X → pushout-Pointed-Type f g →∗ X pr1 (cogap-Pointed-Type c) = map-cogap-Pointed-Type c pr2 (cogap-Pointed-Type {X} c) = ( compute-inl-cogap ( map-pointed-map f) ( map-pointed-map g) ( cocone-cocone-Pointed-Type f g c) ( point-Pointed-Type A)) ∙ ( preserves-point-pointed-map ( horizontal-pointed-map-cocone-Pointed-Type f g c))
Computation with the cogap map for pointed types
module _ { l1 l2 l3 l4 : Level} {S : Pointed-Type l1} {A : Pointed-Type l2} {B : Pointed-Type l3} ( f : S →∗ A) (g : S →∗ B) { X : Pointed-Type l4} (c : cocone-Pointed-Type f g X) where compute-inl-cogap-Pointed-Type : ( x : type-Pointed-Type A) → ( map-cogap-Pointed-Type ( f) ( g) ( c) ( map-pointed-map (inl-pushout-Pointed-Type f g) x)) = ( horizontal-map-cocone-Pointed-Type f g c x) compute-inl-cogap-Pointed-Type = compute-inl-cogap ( map-pointed-map f) ( map-pointed-map g) ( cocone-cocone-Pointed-Type f g c) compute-inr-cogap-Pointed-Type : ( y : type-Pointed-Type B) → ( map-cogap-Pointed-Type ( f) ( g) ( c) ( map-pointed-map (inr-pushout-Pointed-Type f g) y)) = ( vertical-map-cocone-Pointed-Type f g c y) compute-inr-cogap-Pointed-Type = compute-inr-cogap ( map-pointed-map f) ( map-pointed-map g) ( cocone-cocone-Pointed-Type f g c)
Recent changes
- 2025-02-14. Fredrik Bakke. Define left half-smash products (#1320).
- 2024-03-13. Egbert Rijke. Refactoring pointed types (#1056).
- 2023-10-31. maybemabeline and Fredrik Bakke. Universal property of smash products (#865).
- 2023-10-22. Egbert Rijke and Fredrik Bakke. Refactor synthetic homotopy theory (#654).
- 2023-07-19. Egbert Rijke. refactoring pointed maps (#682).