diff --git a/src/foundation-core/subtypes.lagda.md b/src/foundation-core/subtypes.lagda.md
index 5d93921187..c58a2a3d8f 100644
--- a/src/foundation-core/subtypes.lagda.md
+++ b/src/foundation-core/subtypes.lagda.md
@@ -274,7 +274,7 @@ equiv-subtype-equiv :
((x : A) → type-Prop (C x) ↔ type-Prop (D (map-equiv e x))) →
type-subtype C ≃ type-subtype D
equiv-subtype-equiv e C D H =
- equiv-Σ (type-Prop ∘ D) (e) (λ x → equiv-iff' (C x) (D (map-equiv e x)) (H x))
+ equiv-Σ (type-Prop ∘ D) e (λ x → equiv-iff' (C x) (D (map-equiv e x)) (H x))
```
```agda
diff --git a/src/foundation.lagda.md b/src/foundation.lagda.md
index cb4a973fb7..d8ed51df47 100644
--- a/src/foundation.lagda.md
+++ b/src/foundation.lagda.md
@@ -83,6 +83,7 @@ open import foundation.dependent-binomial-theorem public
open import foundation.dependent-epimorphisms public
open import foundation.dependent-identifications public
open import foundation.dependent-pair-types public
+open import foundation.dependent-sequences public
open import foundation.descent-coproduct-types public
open import foundation.descent-dependent-pair-types public
open import foundation.descent-empty-types public
diff --git a/src/foundation/dependent-sequences.lagda.md b/src/foundation/dependent-sequences.lagda.md
new file mode 100644
index 0000000000..7590315c29
--- /dev/null
+++ b/src/foundation/dependent-sequences.lagda.md
@@ -0,0 +1,40 @@
+# Dependent sequences
+
+```agda
+module foundation.dependent-sequences where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.natural-numbers
+
+open import foundation.universe-levels
+
+open import foundation-core.function-types
+```
+
+
+
+## Idea
+
+A **dependent sequence** of elements in a family of types `A : ℕ → UU` is a
+dependent map `(n : ℕ) → A n`.
+
+## Definition
+
+### Dependent sequences of elements in a family of types
+
+```agda
+dependent-sequence : {l : Level} → (ℕ → UU l) → UU l
+dependent-sequence B = (n : ℕ) → B n
+```
+
+### Functorial action on maps of dependent sequences
+
+```agda
+map-dependent-sequence :
+ {l1 l2 : Level} {A : ℕ → UU l1} {B : ℕ → UU l2} →
+ ((n : ℕ) → A n → B n) → dependent-sequence A → dependent-sequence B
+map-dependent-sequence f a = map-Π f a
+```
diff --git a/src/foundation/sequences.lagda.md b/src/foundation/sequences.lagda.md
index e2fa18053f..53f07d5c44 100644
--- a/src/foundation/sequences.lagda.md
+++ b/src/foundation/sequences.lagda.md
@@ -9,6 +9,7 @@ module foundation.sequences where
```agda
open import elementary-number-theory.natural-numbers
+open import foundation.dependent-sequences
open import foundation.universe-levels
open import foundation-core.function-types
@@ -18,7 +19,7 @@ open import foundation-core.function-types
## Idea
-A sequence of elements in a type `A` is a map `ℕ → A`.
+A **sequence** of elements in a type `A` is a map `ℕ → A`.
## Definition
@@ -26,10 +27,10 @@ A sequence of elements in a type `A` is a map `ℕ → A`.
```agda
sequence : {l : Level} → UU l → UU l
-sequence A = ℕ → A
+sequence A = dependent-sequence (λ _ → A)
```
-### Functoriality of sequences
+### Functorial action on maps of sequences
```agda
map-sequence :
diff --git a/src/foundation/type-arithmetic-dependent-function-types.lagda.md b/src/foundation/type-arithmetic-dependent-function-types.lagda.md
index 8ea2ca0e6e..1ac7670980 100644
--- a/src/foundation/type-arithmetic-dependent-function-types.lagda.md
+++ b/src/foundation/type-arithmetic-dependent-function-types.lagda.md
@@ -33,12 +33,11 @@ module _
left-unit-law-Π-is-contr : ((a : A) → (B a)) ≃ B a
left-unit-law-Π-is-contr =
- ( ( left-unit-law-Π ( λ _ → B a)) ∘e
- ( equiv-Π
- ( λ _ → B a)
- ( terminal-map , is-equiv-terminal-map-is-contr C)
- ( λ a →
- equiv-eq (ap B ( eq-is-contr C)))))
+ ( left-unit-law-Π ( λ _ → B a)) ∘e
+ ( equiv-Π
+ ( λ _ → B a)
+ ( terminal-map , is-equiv-terminal-map-is-contr C)
+ ( λ a → equiv-eq (ap B ( eq-is-contr C))))
```
### The swap function `((x : A) (y : B) → C x y) → ((y : B) (x : A) → C x y)` is an equivalence
diff --git a/src/structured-types/pointed-equivalences.lagda.md b/src/structured-types/pointed-equivalences.lagda.md
index d0ae361439..a32857b0e5 100644
--- a/src/structured-types/pointed-equivalences.lagda.md
+++ b/src/structured-types/pointed-equivalences.lagda.md
@@ -34,9 +34,10 @@ open import structured-types.pointed-types
## Idea
-A pointed equivalence is an equivalence in the category of pointed spaces.
-Equivalently, a pointed equivalence is a pointed map of which the underlying
-function is an equivalence.
+A **pointed equivalence** is an equivalence in the category of pointed spaces.
+Equivalently, a pointed equivalence is a
+[pointed map](structured-types.pointed-maps.md) of which the underlying function
+is an [equivalence](foundation-core.equivalences.md).
## Definitions
@@ -50,6 +51,12 @@ module _
is-equiv-pointed-map : (A →∗ B) → UU (l1 ⊔ l2)
is-equiv-pointed-map f = is-equiv (map-pointed-map f)
+ is-prop-is-equiv-pointed-map : (f : A →∗ B) → is-prop (is-equiv-pointed-map f)
+ is-prop-is-equiv-pointed-map = is-property-is-equiv ∘ map-pointed-map
+
+ is-equiv-pointed-map-Prop : (A →∗ B) → Prop (l1 ⊔ l2)
+ is-equiv-pointed-map-Prop = is-equiv-Prop ∘ map-pointed-map
+
pointed-equiv :
{l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) → UU (l1 ⊔ l2)
pointed-equiv A B =
@@ -64,6 +71,11 @@ compute-pointed-equiv :
(A ≃∗ B) ≃ Σ (A →∗ B) (is-equiv-pointed-map {A = A} {B})
compute-pointed-equiv A B = equiv-right-swap-Σ
+inv-compute-pointed-equiv :
+ {l1 l2 : Level} (A : Pointed-Type l1) (B : Pointed-Type l2) →
+ Σ (A →∗ B) (is-equiv-pointed-map {A = A} {B}) ≃ (A ≃∗ B)
+inv-compute-pointed-equiv A B = equiv-right-swap-Σ
+
module _
{l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2} (e : A ≃∗ B)
where
@@ -199,14 +211,14 @@ module _
( inv (preserves-point-pointed-map f))))
( equiv-tot
( λ p →
- ( ( equiv-right-transpose-eq-concat
- ( ap (map-pointed-map f) p)
- ( preserves-point-pointed-map f)
- ( is-section-map-inv-is-equiv H (point-Pointed-Type B))) ∘e
- ( equiv-inv
- ( is-section-map-inv-is-equiv H (point-Pointed-Type B))
- ( ( ap (map-pointed-map f) p) ∙
- ( preserves-point-pointed-map f)))) ∘e
+ ( equiv-right-transpose-eq-concat
+ ( ap (map-pointed-map f) p)
+ ( preserves-point-pointed-map f)
+ ( is-section-map-inv-is-equiv H (point-Pointed-Type B))) ∘e
+ ( equiv-inv
+ ( is-section-map-inv-is-equiv H (point-Pointed-Type B))
+ ( ( ap (map-pointed-map f) p) ∙
+ ( preserves-point-pointed-map f))) ∘e
( equiv-concat'
( is-section-map-inv-is-equiv H (point-Pointed-Type B))
( right-unit))))
@@ -221,37 +233,22 @@ module _
is-equiv-pointed-map f → is-contr (retraction-pointed-map f)
is-contr-retraction-is-equiv-pointed-map H =
is-contr-total-Eq-structure
- ( λ g p (G : (g ∘ map-pointed-map f) ~ id) →
+ ( λ g p (G : g ∘ map-pointed-map f ~ id) →
Id
- { A =
- Id
- { A = type-Pointed-Type A}
- ( g (map-pointed-map f (point-Pointed-Type A)))
- ( point-Pointed-Type A)}
( G (point-Pointed-Type A))
- ( ( ( ap g (preserves-point-pointed-map f)) ∙
- ( p)) ∙
- ( refl)))
+ ( ( ap g (preserves-point-pointed-map f) ∙ p) ∙ refl))
( is-contr-retraction-is-equiv H)
( pair (map-inv-is-equiv H) (is-retraction-map-inv-is-equiv H))
( is-contr-equiv
( fiber
( λ p →
- ( ( ap
- ( map-inv-is-equiv H)
- ( preserves-point-pointed-map f)) ∙
- ( p)) ∙
- ( refl))
+ ap (map-inv-is-equiv H) (preserves-point-pointed-map f) ∙ p ∙ refl)
( is-retraction-map-inv-is-equiv H (point-Pointed-Type A)))
( equiv-tot (λ p → equiv-inv _ _))
( is-contr-map-is-equiv
( is-equiv-comp
- ( λ q → q ∙ refl)
- ( λ p →
- ( ap
- ( map-inv-is-equiv H)
- ( preserves-point-pointed-map f)) ∙
- ( p))
+ ( _∙ refl)
+ ( ap (map-inv-is-equiv H) (preserves-point-pointed-map f) ∙_)
( is-equiv-concat
( ap
( map-inv-is-equiv H)
@@ -307,8 +304,7 @@ module _
where
is-equiv-is-equiv-precomp-pointed-map :
- ( {l : Level} (C : Pointed-Type l) →
- is-equiv (precomp-pointed-map C f)) →
+ ( {l : Level} (C : Pointed-Type l) → is-equiv (precomp-pointed-map C f)) →
is-equiv-pointed-map f
is-equiv-is-equiv-precomp-pointed-map H =
is-equiv-is-invertible
@@ -431,8 +427,8 @@ module _
where
is-equiv-is-equiv-comp-pointed-map :
- ({l : Level} (X : Pointed-Type l) →
- is-equiv (comp-pointed-map {A = X} f)) → is-equiv-pointed-map f
+ ({l : Level} (X : Pointed-Type l) → is-equiv (comp-pointed-map {A = X} f)) →
+ is-equiv-pointed-map f
is-equiv-is-equiv-comp-pointed-map H =
is-equiv-is-invertible
( map-pointed-map g)
diff --git a/src/synthetic-homotopy-theory.lagda.md b/src/synthetic-homotopy-theory.lagda.md
index bfae224a76..03be0502f7 100644
--- a/src/synthetic-homotopy-theory.lagda.md
+++ b/src/synthetic-homotopy-theory.lagda.md
@@ -48,9 +48,11 @@ open import synthetic-homotopy-theory.infinite-complex-projective-space public
open import synthetic-homotopy-theory.infinite-cyclic-types public
open import synthetic-homotopy-theory.interval-type public
open import synthetic-homotopy-theory.iterated-loop-spaces public
+open import synthetic-homotopy-theory.iterated-suspensions-of-pointed-types public
open import synthetic-homotopy-theory.join-powers-of-types public
open import synthetic-homotopy-theory.joins-of-types public
open import synthetic-homotopy-theory.loop-spaces public
+open import synthetic-homotopy-theory.maps-of-prespectra public
open import synthetic-homotopy-theory.morphisms-descent-data-circle public
open import synthetic-homotopy-theory.multiplication-circle public
open import synthetic-homotopy-theory.plus-principle public
@@ -62,7 +64,9 @@ open import synthetic-homotopy-theory.pushouts-of-pointed-types public
open import synthetic-homotopy-theory.sections-descent-circle public
open import synthetic-homotopy-theory.smash-products-of-pointed-types public
open import synthetic-homotopy-theory.spectra public
+open import synthetic-homotopy-theory.sphere-prespectrum public
open import synthetic-homotopy-theory.spheres public
+open import synthetic-homotopy-theory.suspension-prespectra public
open import synthetic-homotopy-theory.suspension-structures public
open import synthetic-homotopy-theory.suspensions-of-pointed-types public
open import synthetic-homotopy-theory.suspensions-of-types public
diff --git a/src/synthetic-homotopy-theory/dependent-cocones-under-spans.lagda.md b/src/synthetic-homotopy-theory/dependent-cocones-under-spans.lagda.md
index bdabbcd01f..d8631c6fb7 100644
--- a/src/synthetic-homotopy-theory/dependent-cocones-under-spans.lagda.md
+++ b/src/synthetic-homotopy-theory/dependent-cocones-under-spans.lagda.md
@@ -99,10 +99,12 @@ dependent-cocone-map :
{ l1 l2 l3 l4 l5 : Level} {S : UU l1} {A : UU l2} {B : UU l3} {X : UU l4}
( f : S → A) (g : S → B) (c : cocone f g X) (P : X → UU l5) →
( (x : X) → P x) → dependent-cocone f g c P
-dependent-cocone-map f g c P h =
- ( λ a → h (horizontal-map-cocone f g c a)) ,
- ( λ b → h (vertical-map-cocone f g c b)) ,
- ( λ s → apd h (coherence-square-cocone f g c s))
+pr1 (dependent-cocone-map f g c P h) a =
+ h (horizontal-map-cocone f g c a)
+pr1 (pr2 (dependent-cocone-map f g c P h)) b =
+ h (vertical-map-cocone f g c b)
+pr2 (pr2 (dependent-cocone-map f g c P h)) s =
+ apd h (coherence-square-cocone f g c s)
```
## Properties
diff --git a/src/synthetic-homotopy-theory/dependent-suspension-structures.lagda.md b/src/synthetic-homotopy-theory/dependent-suspension-structures.lagda.md
index e113b5a80e..16f582a0c6 100644
--- a/src/synthetic-homotopy-theory/dependent-suspension-structures.lagda.md
+++ b/src/synthetic-homotopy-theory/dependent-suspension-structures.lagda.md
@@ -179,7 +179,7 @@ module _
( s))))
( equiv-dependent-universal-property-unit
( λ x → B (north-suspension-structure c)))
- ( λ N-susp-c →
+ ( λ north-suspension-c →
( equiv-Σ
( λ s →
(x : X) →
@@ -189,11 +189,11 @@ module _
( map-equiv
( equiv-dependent-universal-property-unit
( λ _ → B (north-suspension-structure c)))
- ( N-susp-c))
+ ( north-suspension-c))
( s)))
( equiv-dependent-universal-property-unit
( const unit (UU l3) (B (south-suspension-structure c))))
- ( λ S-susp-c → id-equiv))))
+ ( λ south-suspension-c → id-equiv))))
htpy-map-inv-equiv-dependent-suspension-structure-suspension-cocone-cocone-dependent-cocone-dependent-suspension-structure :
map-inv-equiv equiv-dependent-suspension-structure-suspension-cocone ~
diff --git a/src/synthetic-homotopy-theory/functoriality-loop-spaces.lagda.md b/src/synthetic-homotopy-theory/functoriality-loop-spaces.lagda.md
index ad4aeac593..d489f066fd 100644
--- a/src/synthetic-homotopy-theory/functoriality-loop-spaces.lagda.md
+++ b/src/synthetic-homotopy-theory/functoriality-loop-spaces.lagda.md
@@ -27,8 +27,10 @@ open import synthetic-homotopy-theory.loop-spaces
## Idea
-Any pointed map `f : A →∗ B` induces a map `map-Ω f : Ω A →∗ Ω B`. Furthermore,
-this operation respects the groupoidal operations on loop spaces.
+Any [pointed map](structured-types.pointed-maps.md) `f : A →∗ B` induces a
+pointed map `pointed-map-Ω f : Ω A →∗ Ω B`. Furthermore, this operation respects
+the groupoidal operations on
+[loop spaces](synthetic-homotopy-theory.loop-spaces.md).
## Definition
@@ -43,14 +45,15 @@ module _
( preserves-point-pointed-map f)
( ap (map-pointed-map f) p)
- preserves-refl-map-Ω : Id (map-Ω refl) refl
+ preserves-refl-map-Ω : map-Ω refl = refl
preserves-refl-map-Ω = preserves-refl-tr-Ω (pr2 f)
pointed-map-Ω : Ω A →∗ Ω B
- pointed-map-Ω = pair map-Ω preserves-refl-map-Ω
+ pr1 pointed-map-Ω = map-Ω
+ pr2 pointed-map-Ω = preserves-refl-map-Ω
preserves-mul-map-Ω :
- (x y : type-Ω A) → Id (map-Ω (mul-Ω A x y)) (mul-Ω B (map-Ω x) (map-Ω y))
+ (x y : type-Ω A) → map-Ω (mul-Ω A x y) = mul-Ω B (map-Ω x) (map-Ω y)
preserves-mul-map-Ω x y =
( ap
( tr-type-Ω (preserves-point-pointed-map f))
@@ -61,7 +64,7 @@ module _
( ap (map-pointed-map f) y))
preserves-inv-map-Ω :
- (x : type-Ω A) → Id (map-Ω (inv-Ω A x)) (inv-Ω B (map-Ω x))
+ (x : type-Ω A) → map-Ω (inv-Ω A x) = inv-Ω B (map-Ω x)
preserves-inv-map-Ω x =
( ap
( tr-type-Ω (preserves-point-pointed-map f))
@@ -84,8 +87,7 @@ module _
is-emb-comp
( tr-type-Ω (preserves-point-pointed-map f))
( ap (map-pointed-map f))
- ( is-emb-is-equiv
- ( is-equiv-tr-type-Ω (preserves-point-pointed-map f)))
+ ( is-emb-is-equiv (is-equiv-tr-type-Ω (preserves-point-pointed-map f)))
( H (point-Pointed-Type A) (point-Pointed-Type A))
emb-Ω :
@@ -102,27 +104,24 @@ module _
```agda
module _
{l1 l2 : Level} {A : Pointed-Type l1} {B : Pointed-Type l2}
- (f : A →∗ B) (t : is-emb (map-pointed-map f))
+ (f : A →∗ B) (is-emb-f : is-emb (map-pointed-map f))
where
- is-equiv-map-Ω-emb :
- is-equiv (map-Ω f)
- is-equiv-map-Ω-emb =
+ is-equiv-map-Ω-is-emb : is-equiv (map-Ω f)
+ is-equiv-map-Ω-is-emb =
is-equiv-comp
( tr-type-Ω (preserves-point-pointed-map f))
( ap (map-pointed-map f))
- ( t (point-Pointed-Type A) (point-Pointed-Type A))
+ ( is-emb-f (point-Pointed-Type A) (point-Pointed-Type A))
( is-equiv-tr-type-Ω (preserves-point-pointed-map f))
- equiv-map-Ω-emb :
- type-Ω A ≃ type-Ω B
- pr1 equiv-map-Ω-emb = map-Ω f
- pr2 equiv-map-Ω-emb = is-equiv-map-Ω-emb
+ equiv-map-Ω-is-emb : type-Ω A ≃ type-Ω B
+ pr1 equiv-map-Ω-is-emb = map-Ω f
+ pr2 equiv-map-Ω-is-emb = is-equiv-map-Ω-is-emb
- pointed-equiv-pointed-map-Ω-emb :
- Ω A ≃∗ Ω B
- pr1 pointed-equiv-pointed-map-Ω-emb = equiv-map-Ω-emb
- pr2 pointed-equiv-pointed-map-Ω-emb = preserves-refl-map-Ω f
+ pointed-equiv-pointed-map-Ω-is-emb : Ω A ≃∗ Ω B
+ pr1 pointed-equiv-pointed-map-Ω-is-emb = equiv-map-Ω-is-emb
+ pr2 pointed-equiv-pointed-map-Ω-is-emb = preserves-refl-map-Ω f
```
### The operator `pointed-map-Ω` preserves equivalences
@@ -136,7 +135,7 @@ module _
equiv-map-Ω-pointed-equiv :
type-Ω A ≃ type-Ω B
equiv-map-Ω-pointed-equiv =
- equiv-map-Ω-emb
+ equiv-map-Ω-is-emb
( pointed-map-pointed-equiv e)
( is-emb-is-equiv (is-equiv-map-equiv-pointed-equiv e))
```
diff --git a/src/synthetic-homotopy-theory/iterated-suspensions-of-pointed-types.lagda.md b/src/synthetic-homotopy-theory/iterated-suspensions-of-pointed-types.lagda.md
new file mode 100644
index 0000000000..831ae41a13
--- /dev/null
+++ b/src/synthetic-homotopy-theory/iterated-suspensions-of-pointed-types.lagda.md
@@ -0,0 +1,36 @@
+# Iterated suspensions of pointed types
+
+```agda
+module synthetic-homotopy-theory.iterated-suspensions-of-pointed-types where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.natural-numbers
+
+open import foundation.iterating-functions
+open import foundation.universe-levels
+
+open import structured-types.pointed-types
+
+open import synthetic-homotopy-theory.suspensions-of-pointed-types
+```
+
+
+
+## Idea
+
+Given a [pointed type](structured-types.pointed-types.md) `X` and a
+[natural number](elementary-number-theory.natural-numbers.md) `n`, we can form
+the **`n`-iterated suspension** of `X`.
+
+## Definitions
+
+### The iterated suspension of a pointed type
+
+```agda
+iterated-suspension-Pointed-Type :
+ {l : Level} (n : ℕ) → Pointed-Type l → Pointed-Type l
+iterated-suspension-Pointed-Type n = iterate n suspension-Pointed-Type
+```
diff --git a/src/synthetic-homotopy-theory/loop-spaces.lagda.md b/src/synthetic-homotopy-theory/loop-spaces.lagda.md
index b61195a3b2..588e0065da 100644
--- a/src/synthetic-homotopy-theory/loop-spaces.lagda.md
+++ b/src/synthetic-homotopy-theory/loop-spaces.lagda.md
@@ -23,9 +23,10 @@ open import structured-types.wild-quasigroups
## Idea
-The loop space of a pointed type `A` is the pointed type of self-identifications
-of the base point of `A`. The loop space comes equipped with a group structure
-induced by the groupoidal structure on identifications.
+The **loop space** of a [pointed type](structured-types.pointed-types.md) `A` is
+the pointed type of self-[identifications](foundation-core.identity-types.md) of
+the base point of `A`. The loop space comes equipped with a group-like structure
+induced by the groupoidal-like structure on identifications.
## Table of files directly related to loop spaces
diff --git a/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md b/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md
new file mode 100644
index 0000000000..d58d854463
--- /dev/null
+++ b/src/synthetic-homotopy-theory/maps-of-prespectra.lagda.md
@@ -0,0 +1,82 @@
+# Maps of prespectra
+
+```agda
+module synthetic-homotopy-theory.maps-of-prespectra where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.addition-natural-numbers
+open import elementary-number-theory.natural-numbers
+
+open import foundation.commuting-squares-of-maps
+open import foundation.dependent-pair-types
+open import foundation.identity-types
+open import foundation.transport-along-identifications
+open import foundation.universe-levels
+
+open import structured-types.commuting-squares-of-pointed-maps
+open import structured-types.pointed-maps
+open import structured-types.pointed-types
+
+open import synthetic-homotopy-theory.functoriality-loop-spaces
+open import synthetic-homotopy-theory.loop-spaces
+open import synthetic-homotopy-theory.prespectra
+```
+
+
+
+## Idea
+
+A **map of prespectra** `f : A → B` is a
+[sequence](foundation.dependent-sequences.md) of
+[pointed maps](structured-types.pointed-maps.md)
+
+```text
+ fₙ : Aₙ →∗ Bₙ
+```
+
+such that the squares
+
+```text
+ fₙ
+ Aₙ --------> Bₙ
+ | |
+ | |
+ | |
+ v v
+ ΩAₙ₊₁ -----> ΩBₙ₊₁
+ Ωfₙ₊₁
+```
+
+commute in the category of [pointed types](structured-types.pointed-types.md).
+
+## Definition
+
+```agda
+coherence-map-Prespectrum :
+ {l1 l2 : Level} (n : ℕ) (A : Prespectrum l1) (B : Prespectrum l2) →
+ ( (n : ℕ) →
+ pointed-type-Prespectrum A n →∗ pointed-type-Prespectrum B n) →
+ UU (l1 ⊔ l2)
+coherence-map-Prespectrum n A B f =
+ coherence-square-pointed-maps
+ ( f n)
+ ( pointed-adjoint-structure-map-Prespectrum A n)
+ ( pointed-adjoint-structure-map-Prespectrum B n)
+ ( pointed-map-Ω (f (succ-ℕ n)))
+
+map-Prespectrum :
+ {l1 l2 : Level} (A : Prespectrum l1) (B : Prespectrum l2) →
+ UU (l1 ⊔ l2)
+map-Prespectrum A B =
+ Σ ( (n : ℕ) →
+ pointed-type-Prespectrum A n →∗ pointed-type-Prespectrum B n)
+ ( λ f → (n : ℕ) → coherence-map-Prespectrum n A B f)
+```
+
+## References
+
+- J. P. May, _A Concise Course in Algebraic Topology_, 1999
+ ([pdf](https://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf))
diff --git a/src/synthetic-homotopy-theory/prespectra.lagda.md b/src/synthetic-homotopy-theory/prespectra.lagda.md
index 6b8827e384..3d4733d122 100644
--- a/src/synthetic-homotopy-theory/prespectra.lagda.md
+++ b/src/synthetic-homotopy-theory/prespectra.lagda.md
@@ -10,20 +10,42 @@ module synthetic-homotopy-theory.prespectra where
open import elementary-number-theory.natural-numbers
open import foundation.dependent-pair-types
+open import foundation.function-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.loop-spaces
+open import synthetic-homotopy-theory.suspensions-of-pointed-types
+open import synthetic-homotopy-theory.suspensions-of-types
+open import synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types
```
## Idea
-A prespectrum is a sequence of pointed types `A n` equipped with pointed maps
-`ε : A n →∗ Ω (A (n+1))`.
+A **prespectrum** is a [sequence](foundation.sequences.md) of
+[pointed types](structured-types.pointed-types.md) `Aₙ`
+[equipped](foundation.structure.md) with
+[pointed maps](structured-types.pointed-maps.md)
+
+```text
+ ε : Aₙ →∗ ΩAₙ₊₁
+```
+
+for each `n : ℕ`, called the **adjoint structure maps** of the prespectrum.
+
+By the
+[loop-suspension adjunction](synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types.md),
+specifying structure maps `Aₙ →∗ Ω Aₙ₊₁` is
+[equivalent](foundation-core.equivalences.md) to specifying their adjoint maps
+
+```text
+ ΣAₙ → Aₙ₊₁.
+```
## Definition
@@ -31,4 +53,67 @@ A prespectrum is a sequence of pointed types `A n` equipped with pointed maps
Prespectrum : (l : Level) → UU (lsuc l)
Prespectrum l =
Σ (ℕ → Pointed-Type l) (λ A → (n : ℕ) → A n →∗ Ω (A (succ-ℕ n)))
+
+module _
+ {l : Level} (A : Prespectrum l) (n : ℕ)
+ where
+
+ pointed-type-Prespectrum : Pointed-Type l
+ pointed-type-Prespectrum = pr1 A n
+
+ type-Prespectrum : UU l
+ type-Prespectrum = type-Pointed-Type pointed-type-Prespectrum
+
+ point-Prespectrum : type-Prespectrum
+ point-Prespectrum = point-Pointed-Type pointed-type-Prespectrum
+
+module _
+ {l : Level} (A : Prespectrum l) (n : ℕ)
+ where
+
+ pointed-adjoint-structure-map-Prespectrum :
+ pointed-type-Prespectrum A n →∗ Ω (pointed-type-Prespectrum A (succ-ℕ n))
+ pointed-adjoint-structure-map-Prespectrum = pr2 A n
+
+ adjoint-structure-map-Prespectrum :
+ type-Prespectrum A n → type-Ω (pointed-type-Prespectrum A (succ-ℕ n))
+ adjoint-structure-map-Prespectrum =
+ map-pointed-map pointed-adjoint-structure-map-Prespectrum
+
+ preserves-point-adjoint-structure-map-Prespectrum :
+ adjoint-structure-map-Prespectrum (point-Prespectrum A n) =
+ refl-Ω (pointed-type-Prespectrum A (succ-ℕ n))
+ preserves-point-adjoint-structure-map-Prespectrum =
+ preserves-point-pointed-map pointed-adjoint-structure-map-Prespectrum
```
+
+### The structure maps of a prespectrum
+
+```agda
+module _
+ {l : Level} (A : Prespectrum l) (n : ℕ)
+ where
+
+ pointed-structure-map-Prespectrum :
+ suspension-Pointed-Type (pointed-type-Prespectrum A n) →∗
+ pointed-type-Prespectrum A (succ-ℕ n)
+ pointed-structure-map-Prespectrum =
+ inv-transpose-suspension-loop-adjunction
+ ( pointed-type-Prespectrum A n)
+ ( pointed-type-Prespectrum A (succ-ℕ n))
+ ( pointed-adjoint-structure-map-Prespectrum A n)
+
+ structure-map-Prespectrum :
+ suspension (type-Prespectrum A n) → type-Prespectrum A (succ-ℕ n)
+ structure-map-Prespectrum = map-pointed-map pointed-structure-map-Prespectrum
+
+ preserves-point-structure-map-Prespectrum :
+ structure-map-Prespectrum north-suspension = point-Prespectrum A (succ-ℕ n)
+ preserves-point-structure-map-Prespectrum =
+ preserves-point-pointed-map pointed-structure-map-Prespectrum
+```
+
+## References
+
+- J. P. May, _A Concise Course in Algebraic Topology_, 1999
+ ([pdf](https://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf))
diff --git a/src/synthetic-homotopy-theory/spectra.lagda.md b/src/synthetic-homotopy-theory/spectra.lagda.md
index b59eb28164..f719099060 100644
--- a/src/synthetic-homotopy-theory/spectra.lagda.md
+++ b/src/synthetic-homotopy-theory/spectra.lagda.md
@@ -10,25 +10,135 @@ module synthetic-homotopy-theory.spectra where
open import elementary-number-theory.natural-numbers
open import foundation.dependent-pair-types
+open import foundation.equivalences
+open import foundation.function-types
+open import foundation.identity-types
+open import foundation.propositions
open import foundation.universe-levels
open import structured-types.pointed-equivalences
+open import structured-types.pointed-maps
open import structured-types.pointed-types
open import synthetic-homotopy-theory.loop-spaces
+open import synthetic-homotopy-theory.prespectra
+open import synthetic-homotopy-theory.suspensions-of-pointed-types
+open import synthetic-homotopy-theory.suspensions-of-types
+open import synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types
```
## Idea
-A spectrum is an infinite sequence of pointed types `A` such that
-`A n ≃∗ Ω (A (n+1))` for each `n : ℕ`.
+A **spectrum** is a [sequence](foundation.sequences.md) of
+[pointed types](structured-types.pointed-types.md) `A` equipped with an
+equivalence
+
+```text
+ Aₙ ≃∗ ΩAₙ₊₁
+```
+
+for each `n : ℕ`.
## Definition
+### The predicate on prespectra of being a spectrum
+
+```agda
+is-spectrum-Prop : {l : Level} → Prespectrum l → Prop l
+is-spectrum-Prop A =
+ Π-Prop ℕ
+ ( λ n →
+ is-equiv-pointed-map-Prop (pointed-adjoint-structure-map-Prespectrum A n))
+
+is-spectrum : {l : Level} → Prespectrum l → UU l
+is-spectrum = type-Prop ∘ is-spectrum-Prop
+
+is-prop-is-spectrum : {l : Level} (A : Prespectrum l) → is-prop (is-spectrum A)
+is-prop-is-spectrum = is-prop-type-Prop ∘ is-spectrum-Prop
+```
+
+### The type of spectra
+
```agda
Spectrum : (l : Level) → UU (lsuc l)
-Spectrum l =
- Σ (ℕ → Pointed-Type l) (λ A → (n : ℕ) → A n ≃∗ Ω (A (succ-ℕ n)))
+Spectrum l = Σ (Prespectrum l) (is-spectrum)
+
+module _
+ {l : Level} (A : Spectrum l)
+ where
+
+ prespectrum-Spectrum : Prespectrum l
+ prespectrum-Spectrum = pr1 A
+
+ pointed-type-Spectrum : ℕ → Pointed-Type l
+ pointed-type-Spectrum = pointed-type-Prespectrum prespectrum-Spectrum
+
+ type-Spectrum : ℕ → UU l
+ type-Spectrum = type-Prespectrum prespectrum-Spectrum
+
+ point-Spectrum : (n : ℕ) → type-Spectrum n
+ point-Spectrum = point-Prespectrum prespectrum-Spectrum
+
+ pointed-adjoint-structure-map-Spectrum :
+ (n : ℕ) → pointed-type-Spectrum n →∗ Ω (pointed-type-Spectrum (succ-ℕ n))
+ pointed-adjoint-structure-map-Spectrum =
+ pointed-adjoint-structure-map-Prespectrum prespectrum-Spectrum
+
+ adjoint-structure-map-Spectrum :
+ (n : ℕ) → type-Spectrum n → type-Ω (pointed-type-Spectrum (succ-ℕ n))
+ adjoint-structure-map-Spectrum =
+ adjoint-structure-map-Prespectrum prespectrum-Spectrum
+
+ preserves-point-adjoint-structure-map-Spectrum :
+ (n : ℕ) →
+ adjoint-structure-map-Prespectrum (pr1 A) n (point-Prespectrum (pr1 A) n) =
+ refl-Ω (pointed-type-Prespectrum (pr1 A) (succ-ℕ n))
+ preserves-point-adjoint-structure-map-Spectrum =
+ preserves-point-adjoint-structure-map-Prespectrum prespectrum-Spectrum
+
+ is-equiv-pointed-adjoint-structure-map-Spectrum :
+ (n : ℕ) → is-equiv-pointed-map (pointed-adjoint-structure-map-Spectrum n)
+ is-equiv-pointed-adjoint-structure-map-Spectrum = pr2 A
+
+ structure-equiv-Spectrum :
+ (n : ℕ) → type-Spectrum n ≃ type-Ω (pointed-type-Spectrum (succ-ℕ n))
+ pr1 (structure-equiv-Spectrum n) = adjoint-structure-map-Spectrum n
+ pr2 (structure-equiv-Spectrum n) =
+ is-equiv-pointed-adjoint-structure-map-Spectrum n
+
+ pointed-structure-equiv-Spectrum :
+ (n : ℕ) → pointed-type-Spectrum n ≃∗ Ω (pointed-type-Spectrum (succ-ℕ n))
+ pr1 (pointed-structure-equiv-Spectrum n) = structure-equiv-Spectrum n
+ pr2 (pointed-structure-equiv-Spectrum n) =
+ preserves-point-adjoint-structure-map-Spectrum n
```
+
+### The structure maps of a spectrum
+
+```agda
+module _
+ {l : Level} (A : Spectrum l) (n : ℕ)
+ where
+
+ pointed-structure-map-Spectrum :
+ suspension-Pointed-Type (pointed-type-Spectrum A n) →∗
+ pointed-type-Spectrum A (succ-ℕ n)
+ pointed-structure-map-Spectrum =
+ pointed-structure-map-Prespectrum (prespectrum-Spectrum A) n
+
+ structure-map-Spectrum :
+ suspension (type-Spectrum A n) → type-Spectrum A (succ-ℕ n)
+ structure-map-Spectrum = map-pointed-map pointed-structure-map-Spectrum
+
+ preserves-point-structure-map-Spectrum :
+ structure-map-Spectrum north-suspension = point-Spectrum A (succ-ℕ n)
+ preserves-point-structure-map-Spectrum =
+ preserves-point-pointed-map pointed-structure-map-Spectrum
+```
+
+## References
+
+- J. P. May, _A Concise Course in Algebraic Topology_, 1999
+ ([pdf](https://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf))
diff --git a/src/synthetic-homotopy-theory/sphere-prespectrum.lagda.md b/src/synthetic-homotopy-theory/sphere-prespectrum.lagda.md
new file mode 100644
index 0000000000..2a8ad9eab1
--- /dev/null
+++ b/src/synthetic-homotopy-theory/sphere-prespectrum.lagda.md
@@ -0,0 +1,46 @@
+# The sphere prespectrum
+
+```agda
+module synthetic-homotopy-theory.sphere-prespectrum where
+```
+
+Imports
+
+```agda
+open import foundation.dependent-pair-types
+open import foundation.universe-levels
+
+open import synthetic-homotopy-theory.prespectra
+open import synthetic-homotopy-theory.suspension-prespectra
+
+open import univalent-combinatorics.standard-finite-types
+```
+
+
+
+## Idea
+
+The [spheres](synthetic-homotopy-theory.spheres.md) `Sⁿ` define a
+[prespectrum](synthetic-homotopy-theory.prespectra.md)
+
+```text
+ Sⁿ →∗ ΩSⁿ⁺¹
+```
+
+which we call the **sphere prespectrum**.
+
+**Note:** Even though the sphere prespectrum is defined degreewise by the
+adjoint to the identity map, it is not in general a
+[spectrum](synthetic-homotopy-theory.spectra.md), as the transposing map of the
+[loop-suspension adjunction](synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types.md)
+does not generally send [equivalences](foundation-core.equivalences.md) to
+equivalences.
+
+## Definition
+
+### The sphere prespectrum
+
+```agda
+sphere-Prespectrum : Prespectrum lzero
+sphere-Prespectrum = suspension-Prespectrum (Fin 2 , zero-Fin 1)
+```
diff --git a/src/synthetic-homotopy-theory/spheres.lagda.md b/src/synthetic-homotopy-theory/spheres.lagda.md
index ff3be84437..85490fc5db 100644
--- a/src/synthetic-homotopy-theory/spheres.lagda.md
+++ b/src/synthetic-homotopy-theory/spheres.lagda.md
@@ -9,9 +9,14 @@ module synthetic-homotopy-theory.spheres where
```agda
open import elementary-number-theory.natural-numbers
+open import foundation.dependent-pair-types
+open import foundation.function-types
open import foundation.identity-types
open import foundation.universe-levels
+open import structured-types.pointed-types
+
+open import synthetic-homotopy-theory.iterated-suspensions-of-pointed-types
open import synthetic-homotopy-theory.suspensions-of-types
open import univalent-combinatorics.standard-finite-types
@@ -21,14 +26,19 @@ open import univalent-combinatorics.standard-finite-types
## Idea
-The spheres are defined as iterated suspensions of `Fin 2`.
+The **spheres** are defined as
+[iterated suspensions](synthetic-homotopy-theory.iterated-suspensions-of-pointed-types.md)
+of the
+[standard two-element type `Fin 2`](univalent-combinatorics.standard-finite-types.md).
## Definition
```agda
+sphere-Pointed-Type : ℕ → Pointed-Type lzero
+sphere-Pointed-Type n = iterated-suspension-Pointed-Type n (Fin 2 , zero-Fin 1)
+
sphere : ℕ → UU lzero
-sphere zero-ℕ = Fin 2
-sphere (succ-ℕ n) = suspension (sphere n)
+sphere = type-Pointed-Type ∘ sphere-Pointed-Type
north-sphere : (n : ℕ) → sphere n
north-sphere zero-ℕ = zero-Fin 1
@@ -39,7 +49,6 @@ south-sphere zero-ℕ = one-Fin 1
south-sphere (succ-ℕ n) = south-suspension
meridian-sphere :
- (n : ℕ) → sphere n →
- north-sphere (succ-ℕ n) = south-sphere (succ-ℕ n)
+ (n : ℕ) → sphere n → north-sphere (succ-ℕ n) = south-sphere (succ-ℕ n)
meridian-sphere n = meridian-suspension
```
diff --git a/src/synthetic-homotopy-theory/suspension-prespectra.lagda.md b/src/synthetic-homotopy-theory/suspension-prespectra.lagda.md
new file mode 100644
index 0000000000..54a0453fb9
--- /dev/null
+++ b/src/synthetic-homotopy-theory/suspension-prespectra.lagda.md
@@ -0,0 +1,76 @@
+# Suspension prespectra
+
+```agda
+module synthetic-homotopy-theory.suspension-prespectra where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.natural-numbers
+
+open import foundation.dependent-pair-types
+open import foundation.universe-levels
+
+open import structured-types.pointed-maps
+open import structured-types.pointed-types
+
+open import synthetic-homotopy-theory.iterated-suspensions-of-pointed-types
+open import synthetic-homotopy-theory.loop-spaces
+open import synthetic-homotopy-theory.prespectra
+open import synthetic-homotopy-theory.suspensions-of-pointed-types
+open import synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types
+```
+
+
+
+## Idea
+
+Given a [pointed type](structured-types.pointed-types.md) `A`, the
+[sequence](foundation.sequences.md) of
+[iterated suspensions](synthetic-homotopy-theory.iterated-suspensions-of-pointed-types.md)
+of `A`
+
+```text
+ A Σ¹A Σ²A Σ³A ...
+```
+
+defines a [prespectrum](synthetic-homotopy-theory.prespectra.md) `Σ^∞A` that we
+call the **suspension prespectrum** of `A`. Its structure map is defined
+degreewise by the identity
+
+```text
+ Σⁿ⁺¹A = Σⁿ⁺¹A ↝ ΣⁿA →∗ ΩΣⁿ⁺¹A
+```
+
+**Note:** Even though the suspension prespectrum is defined degreewise by the
+adjoint to the identity map, it is not in general a
+[spectrum](synthetic-homotopy-theory.spectra.md), as the transposing map of the
+[loop-suspension adjunction](synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types.md)
+does not generally send [equivalences](foundation-core.equivalences.md) to
+equivalences.
+
+## Definition
+
+```agda
+pointed-structure-map-suspension-Prespectrum :
+ {l : Level} (A : Pointed-Type l) (n : ℕ) →
+ suspension-Pointed-Type (iterated-suspension-Pointed-Type n A) →∗
+ iterated-suspension-Pointed-Type (succ-ℕ n) A
+pointed-structure-map-suspension-Prespectrum A n = id-pointed-map
+
+pointed-adjoint-structure-map-suspension-Prespectrum :
+ {l : Level} (A : Pointed-Type l) (n : ℕ) →
+ iterated-suspension-Pointed-Type n A →∗
+ Ω (iterated-suspension-Pointed-Type (succ-ℕ n) A)
+pointed-adjoint-structure-map-suspension-Prespectrum A n =
+ transpose-suspension-loop-adjunction
+ ( iterated-suspension-Pointed-Type n A)
+ ( iterated-suspension-Pointed-Type (succ-ℕ n) A)
+ ( pointed-structure-map-suspension-Prespectrum A n)
+
+suspension-Prespectrum : {l : Level} → Pointed-Type l → Prespectrum l
+pr1 (suspension-Prespectrum A) n = iterated-suspension-Pointed-Type n A
+pr2 (suspension-Prespectrum A) =
+ pointed-adjoint-structure-map-suspension-Prespectrum A
+```
diff --git a/src/synthetic-homotopy-theory/suspension-structures.lagda.md b/src/synthetic-homotopy-theory/suspension-structures.lagda.md
index 28e806f73d..68e5ca611b 100644
--- a/src/synthetic-homotopy-theory/suspension-structures.lagda.md
+++ b/src/synthetic-homotopy-theory/suspension-structures.lagda.md
@@ -109,12 +109,9 @@ module _
cocone-suspension-structure :
{l1 l2 : Level} (X : UU l1) (Y : UU l2) →
suspension-structure X Y → suspension-cocone X Y
-cocone-suspension-structure X Y (pair N (pair S merid)) =
- pair
- ( const unit Y N)
- ( pair
- ( const unit Y S)
- ( merid))
+pr1 (cocone-suspension-structure X Y (N , S , merid)) = point N
+pr1 (pr2 (cocone-suspension-structure X Y (N , S , merid))) = point S
+pr2 (pr2 (cocone-suspension-structure X Y (N , S , merid))) = merid
equiv-suspension-structure-suspension-cocone :
{l1 l2 : Level} (X : UU l1) (Z : UU l2) →
@@ -221,7 +218,9 @@ module _
where
refl-htpy-suspension-structure : htpy-suspension-structure c c
- refl-htpy-suspension-structure = refl , (refl , right-unit-htpy)
+ pr1 refl-htpy-suspension-structure = refl
+ pr1 (pr2 refl-htpy-suspension-structure) = refl
+ pr2 (pr2 refl-htpy-suspension-structure) = right-unit-htpy
is-refl-refl-htpy-suspension-structure :
refl-htpy-suspension-structure = htpy-eq-suspension-structure refl
@@ -238,9 +237,9 @@ module _
( htpy-suspension-structure c c') →
UU l) →
( P c refl-htpy-suspension-structure) →
- ( ( c' : suspension-structure X Z)
- ( H : htpy-suspension-structure c c') →
- P c' H)
+ ( c' : suspension-structure X Z)
+ ( H : htpy-suspension-structure c c') →
+ P c' H
ind-htpy-suspension-structure P =
pr1
( is-identity-system-is-torsorial
diff --git a/src/synthetic-homotopy-theory/suspensions-of-types.lagda.md b/src/synthetic-homotopy-theory/suspensions-of-types.lagda.md
index 1c37e70746..b69dfaa20f 100644
--- a/src/synthetic-homotopy-theory/suspensions-of-types.lagda.md
+++ b/src/synthetic-homotopy-theory/suspensions-of-types.lagda.md
@@ -23,6 +23,7 @@ open import foundation.transport-along-identifications
open import foundation.unit-type
open import foundation.universe-levels
+open import synthetic-homotopy-theory.cocones-under-spans
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
@@ -36,8 +37,9 @@ open import synthetic-homotopy-theory.universal-property-suspensions
## Idea
-The suspension of a type `X` is the
-[pushout](synthetic-homotopy-theory.pushouts.md) of the span
+The **suspension** of a type `X` is the
+[pushout](synthetic-homotopy-theory.pushouts.md) of the
+[span](foundation.spans.md)
```text
unit <-- X --> unit
@@ -54,23 +56,23 @@ they star in the freudenthal suspension theorem and give us a definition of
```agda
suspension :
{l : Level} → UU l → UU l
-suspension X = pushout (const X unit star) (const X unit star)
+suspension X = pushout (terminal-map {A = X}) (terminal-map {A = X})
north-suspension :
{l : Level} {X : UU l} → suspension X
north-suspension {X = X} =
- inl-pushout (const X unit star) (const X unit star) star
+ inl-pushout terminal-map terminal-map 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
+ inr-pushout terminal-map terminal-map 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)
+ glue-pushout terminal-map terminal-map
suspension-structure-suspension :
{l : Level} (X : UU l) → suspension-structure X (suspension X)
@@ -99,10 +101,11 @@ module _
( triangle-ev-suspension
{ X = X}
{ Y = suspension X}
- ( suspension-structure-suspension X) Z)
+ ( 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-pushout terminal-map terminal-map Z)))
equiv-up-suspension :
{l : Level} (Z : UU l) → (suspension X → Z) ≃ (suspension-structure X Z)
@@ -134,7 +137,7 @@ module _
( 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))
+ 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) →
@@ -184,8 +187,8 @@ dependent-up-suspension l {X = X} B =
( suspension-structure-suspension X)
( B)) ∘
( dependent-cocone-map
- ( const X unit star)
- ( const X unit star)
+ ( terminal-map)
+ ( terminal-map)
( cocone-suspension-structure
( X)
( suspension X)
@@ -201,20 +204,20 @@ dependent-up-suspension l {X = X} B =
( suspension-structure-suspension X)
( B)))
( dependent-cocone-map
- ( const X unit star)
- ( const X unit star)
+ ( terminal-map)
+ ( terminal-map)
( cocone-suspension-structure X
( suspension X)
( suspension-structure-suspension X))
( B))
- ( dependent-up-pushout (const X unit star) (const X unit star) B)
+ ( dependent-up-pushout terminal-map terminal-map 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) →
+ {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) =
@@ -223,7 +226,7 @@ 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)
+ {l1 l2 : Level} {X : UU l1} (B : suspension X → UU l2)
where
map-inv-dependent-up-suspension :
@@ -248,8 +251,8 @@ module _
(d : dependent-suspension-structure
( B)
( suspension-structure-suspension X)) →
- ( map-inv-dependent-up-suspension d north-suspension) =
- ( north-dependent-suspension-structure d)
+ ( 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)
@@ -301,14 +304,14 @@ suspension
```agda
module _
{l1 l2 : Level} (X : UU l1) {Y : UU l2}
- (f g : (suspension X) → Y)
+ (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))
+ Σ ( f north-suspension = g north-suspension)
( λ p →
- Σ ( f (south-suspension) = g (south-suspension))
+ Σ ( f south-suspension = g south-suspension)
( λ q →
(x : X) →
coherence-square-identifications
@@ -319,12 +322,12 @@ module _
north-htpy-function-out-of-suspension :
htpy-function-out-of-suspension →
- f (north-suspension) = g (north-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)
+ f south-suspension = g south-suspension
south-htpy-function-out-of-suspension = pr1 ∘ pr2
meridian-htpy-function-out-of-suspension :
@@ -377,9 +380,9 @@ module _
map-equiv (equiv-htpy-function-out-of-suspension-htpy)
htpy-htpy-function-out-of-suspension :
- htpy-function-out-of-suspension → (f ~ g)
+ htpy-function-out-of-suspension → (f ~ g)
htpy-htpy-function-out-of-suspension =
- map-inv-equiv (equiv-htpy-function-out-of-suspension-htpy)
+ map-inv-equiv (equiv-htpy-function-out-of-suspension-htpy)
equiv-htpy-htpy-function-out-of-suspension :
htpy-function-out-of-suspension ≃ (f ~ g)
@@ -395,14 +398,14 @@ is-contr-suspension-is-contr :
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))))
+ ( pr1 (pr2 (cocone-pushout terminal-map terminal-map)))
( is-equiv-universal-property-pushout
- ( const X unit star)
- ( const X unit star)
+ ( terminal-map)
+ ( terminal-map)
( 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)))
+ ( terminal-map)
+ ( terminal-map))
+ ( is-equiv-is-contr terminal-map is-contr-X is-contr-unit)
+ ( up-pushout terminal-map terminal-map))
( is-contr-unit)
```
diff --git a/src/synthetic-homotopy-theory/universal-property-suspensions-of-pointed-types.lagda.md b/src/synthetic-homotopy-theory/universal-property-suspensions-of-pointed-types.lagda.md
index 38ab886c89..15720ae895 100644
--- a/src/synthetic-homotopy-theory/universal-property-suspensions-of-pointed-types.lagda.md
+++ b/src/synthetic-homotopy-theory/universal-property-suspensions-of-pointed-types.lagda.md
@@ -71,58 +71,54 @@ module _
pr1 pointed-map-concat-meridian-suspension = meridian-suspension
pr2 pointed-map-concat-meridian-suspension = refl
- pointed-map-unit-susp-loop-adj : X →∗ Ω (suspension-Pointed-Type X)
- pointed-map-unit-susp-loop-adj =
+ pointed-map-unit-suspension-loop-adjunction :
+ X →∗ Ω (suspension-Pointed-Type X)
+ pointed-map-unit-suspension-loop-adjunction =
pointed-map-loop-pointed-identity-suspension ∘∗
pointed-map-concat-meridian-suspension
- map-unit-susp-loop-adj : type-Pointed-Type X →
- type-Ω (suspension-Pointed-Type X)
- map-unit-susp-loop-adj = map-pointed-map pointed-map-unit-susp-loop-adj
+ map-unit-suspension-loop-adjunction :
+ type-Pointed-Type X → type-Ω (suspension-Pointed-Type X)
+ map-unit-suspension-loop-adjunction =
+ map-pointed-map pointed-map-unit-suspension-loop-adjunction
- map-counit-susp-loop-adj : (suspension (type-Ω X)) → type-Pointed-Type X
- map-counit-susp-loop-adj =
+ map-counit-suspension-loop-adjunction :
+ suspension (type-Ω X) → type-Pointed-Type X
+ map-counit-suspension-loop-adjunction =
map-inv-is-equiv
( up-suspension (type-Ω X) (type-Pointed-Type X))
- ( ( point-Pointed-Type X) ,
- ( point-Pointed-Type X) ,
- ( id))
-
- pointed-map-counit-susp-loop-adj :
- ( pair (suspension (type-Ω X)) north-suspension) →∗ X
- pr1 pointed-map-counit-susp-loop-adj = map-counit-susp-loop-adj
- pr2 pointed-map-counit-susp-loop-adj =
+ ( point-Pointed-Type X , point-Pointed-Type X , id)
+
+ pointed-map-counit-suspension-loop-adjunction :
+ pair (suspension (type-Ω X)) (north-suspension) →∗ X
+ pr1 pointed-map-counit-suspension-loop-adjunction =
+ map-counit-suspension-loop-adjunction
+ pr2 pointed-map-counit-suspension-loop-adjunction =
up-suspension-north-suspension
( type-Ω X)
( type-Pointed-Type X)
- ( ( point-Pointed-Type X) ,
- ( point-Pointed-Type X) ,
- ( id))
+ ( point-Pointed-Type X , point-Pointed-Type X , id)
```
-#### The underlying map of the equivalence
+#### The transposing maps of the adjunction
```agda
module _
{l1 l2 : Level} (X : Pointed-Type l1) (Y : Pointed-Type l2)
where
- map-equiv-susp-loop-adj :
- ((suspension-Pointed-Type X) →∗ Y) → (X →∗ Ω Y)
- map-equiv-susp-loop-adj f∗ =
- ((pointed-map-Ω f∗) ∘∗ (pointed-map-unit-susp-loop-adj X))
-```
-
-#### The underlying map of the inverse equivalence
+ transpose-suspension-loop-adjunction :
+ (suspension-Pointed-Type X →∗ Y) → (X →∗ Ω Y)
+ transpose-suspension-loop-adjunction f∗ =
+ pointed-map-Ω f∗ ∘∗ pointed-map-unit-suspension-loop-adjunction X
-```agda
module _
{l1 l2 : Level} (X : Pointed-Type l1) (Y : Pointed-Type l2)
where
- map-inv-equiv-susp-loop-adj :
- (X →∗ Ω Y) → ((suspension-Pointed-Type X) →∗ Y)
- pr1 (map-inv-equiv-susp-loop-adj f∗) =
+ inv-transpose-suspension-loop-adjunction :
+ (X →∗ Ω Y) → (suspension-Pointed-Type X →∗ Y)
+ pr1 (inv-transpose-suspension-loop-adjunction f∗) =
map-inv-up-suspension
( type-Pointed-Type X)
( type-Pointed-Type Y)
@@ -130,63 +126,53 @@ module _
( type-Pointed-Type X)
( Y)
( map-pointed-map f∗))
- pr2 (map-inv-equiv-susp-loop-adj f∗) =
+ pr2 (inv-transpose-suspension-loop-adjunction f∗) =
up-suspension-north-suspension
( type-Pointed-Type X)
( type-Pointed-Type Y)
( suspension-structure-map-into-Ω
- ( type-Pointed-Type X)
- ( Y)
- ( map-pointed-map f∗))
+ ( type-Pointed-Type X)
+ ( Y)
+ ( map-pointed-map f∗))
```
We now show these maps are inverses of each other.
-#### The equivalence between pointed maps out of the suspension of X and pointed maps into the loop space of Y
+#### The transposing equivalence between pointed maps out of the suspension of `X` and pointed maps into the loop space of `Y`
```agda
module _
{l1 l2 : Level} (X : Pointed-Type l1) (Y : Pointed-Type l2)
where
- equiv-susp-loop-adj : (suspension-Pointed-Type X →∗ Y) ≃ (X →∗ Ω Y)
- equiv-susp-loop-adj =
+ equiv-transpose-suspension-loop-adjunction :
+ (suspension-Pointed-Type X →∗ Y) ≃ (X →∗ Ω Y)
+ equiv-transpose-suspension-loop-adjunction =
( left-unit-law-Σ-is-contr
( is-contr-total-path (point-Pointed-Type Y))
- ( (point-Pointed-Type Y) , refl)) ∘e
- ( ( inv-equiv
- ( associative-Σ
- ( type-Pointed-Type Y)
- ( λ z → (point-Pointed-Type Y) = z)
- ( λ t →
- Σ ( type-Pointed-Type X →
- ( point-Pointed-Type Y) = (pr1 t))
- ( λ f → f (point-Pointed-Type X) = (pr2 t))))) ∘e
- ( ( equiv-tot (λ y1 → equiv-left-swap-Σ)) ∘e
- ( ( associative-Σ
- ( type-Pointed-Type Y)
- ( λ y1 →
- type-Pointed-Type X → point-Pointed-Type Y = y1)
- ( λ z →
- Σ ( Id (point-Pointed-Type Y) (pr1 z))
- ( λ x → pr2 z (point-Pointed-Type X) = x))) ∘e
- ( ( inv-equiv
- ( right-unit-law-Σ-is-contr
- ( λ ( z : Σ ( type-Pointed-Type Y)
- ( λ y1 →
- type-Pointed-Type X →
- point-Pointed-Type Y = y1)) →
- ( is-contr-total-path
- ( (pr2 z) (point-Pointed-Type X)))))) ∘e
- ( ( left-unit-law-Σ-is-contr
- ( is-contr-total-path' (point-Pointed-Type Y))
- ( (point-Pointed-Type Y) , refl)) ∘e
- ( ( equiv-right-swap-Σ) ∘e
- ( equiv-Σ-equiv-base
- ( λ c → (pr1 c) = (point-Pointed-Type Y))
- ( equiv-up-suspension
- ( type-Pointed-Type X)
- ( type-Pointed-Type Y)))))))))
+ ( point-Pointed-Type Y , refl)) ∘e
+ ( inv-associative-Σ
+ ( type-Pointed-Type Y)
+ ( λ z → point-Pointed-Type Y = z)
+ ( λ t →
+ Σ ( type-Pointed-Type X → point-Pointed-Type Y = pr1 t)
+ ( λ f → f (point-Pointed-Type X) = pr2 t))) ∘e
+ ( equiv-tot (λ y1 → equiv-left-swap-Σ)) ∘e
+ ( associative-Σ
+ ( type-Pointed-Type Y)
+ ( λ y1 → type-Pointed-Type X → point-Pointed-Type Y = y1)
+ ( λ z →
+ Σ ( point-Pointed-Type Y = pr1 z)
+ ( λ x → pr2 z (point-Pointed-Type X) = x))) ∘e
+ ( inv-right-unit-law-Σ-is-contr
+ ( λ z → is-contr-total-path (pr2 z (point-Pointed-Type X)))) ∘e
+ ( left-unit-law-Σ-is-contr
+ ( is-contr-total-path' (point-Pointed-Type Y))
+ ( point-Pointed-Type Y , refl)) ∘e
+ ( equiv-right-swap-Σ) ∘e
+ ( equiv-Σ-equiv-base
+ ( λ c → pr1 c = point-Pointed-Type Y)
+ ( equiv-up-suspension (type-Pointed-Type X) (type-Pointed-Type Y)))
```
#### The equivalence in the suspension-loop space adjunction is pointed