Suspensions of types
Content created by Egbert Rijke, Raymond Baker, Fredrik Bakke, Jonathan Prieto-Cubides and Victor Blanchi
Created on 2022-05-16.
Last modified on 2023-09-12.
module synthetic-homotopy-theory.suspensions-of-types where
Imports
open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions open import foundation.commuting-squares-of-identifications open import foundation.constant-maps open import foundation.contractible-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.function-types open import foundation.functoriality-dependent-function-types open import foundation.functoriality-dependent-pair-types open import foundation.homotopies open import foundation.identity-types open import foundation.transport-along-identifications open import foundation.unit-type open import foundation.universe-levels open import synthetic-homotopy-theory.dependent-cocones-under-spans open import synthetic-homotopy-theory.dependent-suspension-structures open import synthetic-homotopy-theory.dependent-universal-property-suspensions open import synthetic-homotopy-theory.pushouts open import synthetic-homotopy-theory.suspension-structures open import synthetic-homotopy-theory.universal-property-pushouts open import synthetic-homotopy-theory.universal-property-suspensions
Idea
The suspension of a type X
is the
pushout of the span
unit <-- X --> unit
Suspensions play an important role in synthetic homotopy theory. For example, they star in the freudenthal suspension theorem and give us a definition of the spheres.
Definition
The suspension of an ordinary type X
suspension : {l : Level} → UU l → UU l suspension X = pushout (const X unit star) (const X unit star) north-suspension : {l : Level} {X : UU l} → suspension X north-suspension {X = X} = inl-pushout (const X unit star) (const X unit star) star south-suspension : {l : Level} {X : UU l} → suspension X south-suspension {X = X} = inr-pushout (const X unit star) (const X unit star) star meridian-suspension : {l : Level} {X : UU l} → X → Id (north-suspension {X = X}) (south-suspension {X = X}) meridian-suspension {X = X} = glue-pushout (const X unit star) (const X unit star) suspension-structure-suspension : {l : Level} (X : UU l) → suspension-structure X (suspension X) pr1 (suspension-structure-suspension X) = north-suspension pr1 (pr2 (suspension-structure-suspension X)) = south-suspension pr2 (pr2 (suspension-structure-suspension X)) = meridian-suspension
Properties
The suspension of X has the universal property of suspensions
module _ {l1 : Level} (X : UU l1) where up-suspension : {l : Level} → universal-property-suspension l X ( suspension X) ( suspension-structure-suspension X) up-suspension Z = is-equiv-htpy ( ev-suspension (suspension-structure-suspension X) Z) ( triangle-ev-suspension { X = X} { Y = suspension X} ( suspension-structure-suspension X) Z) ( is-equiv-map-equiv ( ( equiv-suspension-structure-suspension-cocone X Z) ∘e ( equiv-up-pushout (const X unit star) (const X unit star) Z))) equiv-up-suspension : {l : Level} (Z : UU l) → (suspension X → Z) ≃ (suspension-structure X Z) pr1 (equiv-up-suspension Z) = ev-suspension (suspension-structure-suspension X) Z pr2 (equiv-up-suspension Z) = up-suspension Z map-inv-up-suspension : {l : Level} (Z : UU l) → suspension-structure X Z → suspension X → Z map-inv-up-suspension Z = map-inv-equiv (equiv-up-suspension Z) is-section-map-inv-up-suspension : {l : Level} (Z : UU l) → ( ( ev-suspension ((suspension-structure-suspension X)) Z) ∘ ( map-inv-up-suspension Z)) ~ id is-section-map-inv-up-suspension Z = is-section-map-inv-is-equiv (up-suspension Z) is-retraction-map-inv-up-suspension : {l : Level} (Z : UU l) → ( ( map-inv-up-suspension Z) ∘ ( ev-suspension ((suspension-structure-suspension X)) Z)) ~ id is-retraction-map-inv-up-suspension Z = is-retraction-map-inv-is-equiv (up-suspension Z) up-suspension-north-suspension : {l : Level} (Z : UU l) (c : suspension-structure X Z) → ( map-inv-up-suspension Z c north-suspension) = ( north-suspension-structure c) up-suspension-north-suspension Z c = pr1 (htpy-eq-suspension-structure ((is-section-map-inv-up-suspension Z) c)) up-suspension-south-suspension : {l : Level} (Z : UU l) (c : suspension-structure X Z) → ( map-inv-up-suspension Z c south-suspension) = ( south-suspension-structure c) up-suspension-south-suspension Z c = pr1 ( pr2 ( htpy-eq-suspension-structure (is-section-map-inv-up-suspension Z c))) up-suspension-meridian-suspension : {l : Level} (Z : UU l) (c : suspension-structure X Z) (x : X) → ( ( ap (map-inv-up-suspension Z c) (meridian-suspension x)) ∙ ( up-suspension-south-suspension Z c)) = ( ( up-suspension-north-suspension Z c) ∙ ( meridian-suspension-structure c x)) up-suspension-meridian-suspension Z c = pr2 ( pr2 ( htpy-eq-suspension-structure (is-section-map-inv-up-suspension Z c))) ev-suspension-up-suspension : {l : Level} (Z : UU l) (c : suspension-structure X Z) → ( ev-suspension ( suspension-structure-suspension X) ( Z) ( map-inv-up-suspension Z c)) = c ev-suspension-up-suspension {l} Z c = eq-htpy-suspension-structure ( ( up-suspension-north-suspension Z c) , ( up-suspension-south-suspension Z c) , ( up-suspension-meridian-suspension Z c))
The suspension of X has the dependent universal property of suspensions
dependent-up-suspension : (l : Level) {l1 : Level} {X : UU l1} → dependent-universal-property-suspension ( l) ( suspension-structure-suspension X) dependent-up-suspension l {X = X} B = is-equiv-htpy ( map-equiv ( equiv-dependent-suspension-structure-suspension-cocone ( suspension-structure-suspension X) ( B)) ∘ ( dependent-cocone-map ( const X unit star) ( const X unit star) ( cocone-suspension-structure ( X) ( suspension X) ( suspension-structure-suspension X)) ( B))) ( inv-htpy ( triangle-dependent-ev-suspension ( suspension-structure-suspension X) ( B))) ( is-equiv-comp ( map-equiv ( equiv-dependent-suspension-structure-suspension-cocone ( suspension-structure-suspension X) ( B))) ( dependent-cocone-map ( const X unit star) ( const X unit star) ( cocone-suspension-structure X ( suspension X) ( suspension-structure-suspension X)) ( B)) ( dependent-up-pushout (const X unit star) (const X unit star) B) ( is-equiv-map-equiv ( equiv-dependent-suspension-structure-suspension-cocone ( suspension-structure-suspension X) ( B)))) equiv-dependent-up-suspension : {l1 l2 : Level} {X : UU l1} (B : (suspension X) → UU l2) → ((x : suspension X) → B x) ≃ ( dependent-suspension-structure B (suspension-structure-suspension X)) pr1 (equiv-dependent-up-suspension {l2 = l2} {X = X} B) = (dependent-ev-suspension (suspension-structure-suspension X) B) pr2 (equiv-dependent-up-suspension {l2 = l2} B) = dependent-up-suspension l2 B module _ {l1 l2 : Level} {X : UU l1} (B : (suspension X) → UU l2) where map-inv-dependent-up-suspension : dependent-suspension-structure B (suspension-structure-suspension X) → (x : suspension X) → B x map-inv-dependent-up-suspension = map-inv-is-equiv (dependent-up-suspension l2 B) is-section-map-inv-dependent-up-suspension : ( ( dependent-ev-suspension (suspension-structure-suspension X) B) ∘ ( map-inv-dependent-up-suspension)) ~ id is-section-map-inv-dependent-up-suspension = is-section-map-inv-is-equiv (dependent-up-suspension l2 B) is-retraction-map-inv-dependent-up-suspension : ( ( map-inv-dependent-up-suspension) ∘ ( dependent-ev-suspension (suspension-structure-suspension X) B)) ~ id is-retraction-map-inv-dependent-up-suspension = is-retraction-map-inv-is-equiv (dependent-up-suspension l2 B) dependent-up-suspension-north-suspension : (d : dependent-suspension-structure ( B) ( suspension-structure-suspension X)) → ( map-inv-dependent-up-suspension d north-suspension) = ( north-dependent-suspension-structure d) dependent-up-suspension-north-suspension d = north-htpy-dependent-suspension-structure ( B) ( htpy-eq-dependent-suspension-structure ( B) ( is-section-map-inv-dependent-up-suspension d)) dependent-up-suspension-south-suspension : (d : dependent-suspension-structure ( B) ( suspension-structure-suspension X)) → ( map-inv-dependent-up-suspension d south-suspension) = ( south-dependent-suspension-structure d) dependent-up-suspension-south-suspension d = south-htpy-dependent-suspension-structure ( B) ( htpy-eq-dependent-suspension-structure ( B) ( is-section-map-inv-dependent-up-suspension d)) dependent-up-suspension-meridian-suspension : (d : dependent-suspension-structure ( B) ( suspension-structure-suspension X)) (x : X) → coherence-square-identifications ( apd ( map-inv-dependent-up-suspension d) ( meridian-suspension x)) ( dependent-up-suspension-south-suspension d) ( ap ( tr B (meridian-suspension x)) ( dependent-up-suspension-north-suspension d)) ( meridian-dependent-suspension-structure d x) dependent-up-suspension-meridian-suspension d = meridian-htpy-dependent-suspension-structure ( B) ( htpy-eq-dependent-suspension-structure ( B) ( is-section-map-inv-dependent-up-suspension d))
Consequences of the dependent universal property
Characterization of homotopies between functions with domain a
suspension
module _ {l1 l2 : Level} (X : UU l1) {Y : UU l2} (f g : (suspension X) → Y) where htpy-function-out-of-suspension : UU (l1 ⊔ l2) htpy-function-out-of-suspension = Σ ( f (north-suspension) = g (north-suspension)) ( λ p → Σ ( f (south-suspension) = g (south-suspension)) ( λ q → (x : X) → coherence-square-identifications ( ap f (meridian-suspension x)) ( q) ( p) ( ap g (meridian-suspension x)))) north-htpy-function-out-of-suspension : htpy-function-out-of-suspension → f (north-suspension) = g (north-suspension) north-htpy-function-out-of-suspension = pr1 south-htpy-function-out-of-suspension : htpy-function-out-of-suspension → f (south-suspension) = g (south-suspension) south-htpy-function-out-of-suspension = pr1 ∘ pr2 meridian-htpy-function-out-of-suspension : (h : htpy-function-out-of-suspension) → (x : X) → coherence-square-identifications ( ap f (meridian-suspension x)) ( south-htpy-function-out-of-suspension h) ( north-htpy-function-out-of-suspension h) ( ap g (meridian-suspension x)) meridian-htpy-function-out-of-suspension = pr2 ∘ pr2 equiv-htpy-function-out-of-suspension-htpy : (f ~ g) ≃ htpy-function-out-of-suspension equiv-htpy-function-out-of-suspension-htpy = equivalence-reasoning (f ~ g) ≃ dependent-suspension-structure ( eq-value f g) ( suspension-structure-suspension X) by equiv-dependent-up-suspension (eq-value f g) ≃ htpy-function-out-of-suspension by equiv-tot ( λ p → equiv-tot ( λ q → equiv-Π ( λ x → coherence-square-identifications ( ap f (meridian-suspension x)) ( q) ( p) ( ap g (meridian-suspension x))) ( id-equiv) ( λ x → inv-equiv ( compute-dependent-identification-eq-value-function ( f) ( g) ( meridian-suspension-structure ( suspension-structure-suspension X) ( x)) ( p) ( q))))) htpy-function-out-of-suspension-htpy : (f ~ g) → htpy-function-out-of-suspension htpy-function-out-of-suspension-htpy = map-equiv (equiv-htpy-function-out-of-suspension-htpy) htpy-htpy-function-out-of-suspension : htpy-function-out-of-suspension → (f ~ g) htpy-htpy-function-out-of-suspension = map-inv-equiv (equiv-htpy-function-out-of-suspension-htpy) equiv-htpy-htpy-function-out-of-suspension : htpy-function-out-of-suspension ≃ (f ~ g) equiv-htpy-htpy-function-out-of-suspension = inv-equiv equiv-htpy-function-out-of-suspension-htpy
The suspension of a contractible type is contractible
is-contr-suspension-is-contr : {l : Level} {X : UU l} → is-contr X → is-contr (suspension X) is-contr-suspension-is-contr {l} {X} is-contr-X = is-contr-is-equiv' ( unit) ( pr1 (pr2 (cocone-pushout (const X unit star) (const X unit star)))) ( is-equiv-universal-property-pushout ( const X unit star) ( const X unit star) ( cocone-pushout ( const X unit star) ( const X unit star)) ( is-equiv-is-contr (const X unit star) is-contr-X is-contr-unit) ( up-pushout (const X unit star) (const X unit star))) ( is-contr-unit)
Recent changes
- 2023-09-12. Egbert Rijke. Beyond foundation (#751).
- 2023-09-11. Fredrik Bakke. Transport along and action on equivalences (#706).
- 2023-09-09. Raymond Baker and Egbert Rijke. Dependent universal property of suspensions (#718).
- 2023-08-28. Raymond Baker and Fredrik Bakke. Suspension reorganization (#700).
- 2023-08-20. Raymond Baker, Egbert Rijke and Fredrik Bakke. Dependent Universal Property of Suspensions (#690).