Equivalences of sequential diagrams
Content created by Fredrik Bakke, Vojtěch Štěpančík and Egbert Rijke.
Created on 2023-10-23.
Last modified on 2024-02-19.
module synthetic-homotopy-theory.equivalences-sequential-diagrams where
Imports
open import elementary-number-theory.natural-numbers open import foundation.commuting-squares-of-maps open import foundation.dependent-pair-types open import foundation.equality-dependent-function-types open import foundation.equivalences open import foundation.function-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.structure-identity-principle open import foundation.torsorial-type-families open import foundation.univalence open import foundation.universe-levels open import synthetic-homotopy-theory.morphisms-sequential-diagrams open import synthetic-homotopy-theory.retracts-of-sequential-diagrams open import synthetic-homotopy-theory.sequential-diagrams
Idea
An equivalence of sequential diagrams (A, a)
and (B, b)
is a
sequence of
equivalences eₙ : Aₙ ≃ Bₙ
such that their
underlying maps form a
morphism of sequential diagrams.
Specifically, the underlying maps need to satisfy the same naturality condition.
Definitions
Equivalences of sequential diagrams
module _ { l1 l2 : Level} (A : sequential-diagram l1) (B : sequential-diagram l2) where equiv-sequential-diagram : UU (l1 ⊔ l2) equiv-sequential-diagram = Σ ( ( n : ℕ) → family-sequential-diagram A n ≃ family-sequential-diagram B n) ( λ e → naturality-hom-sequential-diagram A B (map-equiv ∘ e))
Components of equivalences of sequential diagrams
Implementation note: As mentioned in
morphisms-sequential-diagrams
,
Agda can’t infer both the domain and the codomain when we use accessors for the
equivalences, and the codomain needs to be provided explicitly.
module _ { l1 l2 : Level} {A : sequential-diagram l1} (B : sequential-diagram l2) ( e : equiv-sequential-diagram A B) where equiv-equiv-sequential-diagram : ( n : ℕ) → family-sequential-diagram A n ≃ family-sequential-diagram B n equiv-equiv-sequential-diagram = pr1 e map-equiv-sequential-diagram : ( n : ℕ) → family-sequential-diagram A n → family-sequential-diagram B n map-equiv-sequential-diagram n = map-equiv (equiv-equiv-sequential-diagram n) naturality-equiv-sequential-diagram : naturality-hom-sequential-diagram A B map-equiv-sequential-diagram naturality-equiv-sequential-diagram = pr2 e hom-equiv-sequential-diagram : hom-sequential-diagram A B pr1 hom-equiv-sequential-diagram = map-equiv-sequential-diagram pr2 hom-equiv-sequential-diagram = naturality-equiv-sequential-diagram is-equiv-map-equiv-sequential-diagram : ( n : ℕ) → is-equiv (map-equiv-sequential-diagram n) is-equiv-map-equiv-sequential-diagram n = is-equiv-map-equiv (equiv-equiv-sequential-diagram n)
The identity equivalence of sequential diagrams
module _ { l1 : Level} (A : sequential-diagram l1) where id-equiv-sequential-diagram : equiv-sequential-diagram A A pr1 id-equiv-sequential-diagram n = id-equiv pr2 id-equiv-sequential-diagram n = refl-htpy
Composition of equivalences of sequential diagrams
module _ { l1 l2 l3 : Level} (A : sequential-diagram l1) (B : sequential-diagram l2) ( C : sequential-diagram l3) where comp-equiv-sequential-diagram : equiv-sequential-diagram B C → equiv-sequential-diagram A B → equiv-sequential-diagram A C pr1 (comp-equiv-sequential-diagram e e') n = ( equiv-equiv-sequential-diagram C e n) ∘e ( equiv-equiv-sequential-diagram B e' n) pr2 (comp-equiv-sequential-diagram e e') = naturality-map-hom-sequential-diagram C ( comp-hom-sequential-diagram A B C ( hom-equiv-sequential-diagram C e) ( hom-equiv-sequential-diagram B e'))
Inverses of equivalences of sequential diagrams
module _ { l1 l2 : Level} {A : sequential-diagram l1} (B : sequential-diagram l2) ( e : equiv-sequential-diagram A B) where inv-equiv-sequential-diagram : equiv-sequential-diagram B A pr1 inv-equiv-sequential-diagram n = inv-equiv (equiv-equiv-sequential-diagram B e n) pr2 inv-equiv-sequential-diagram n = vertical-inv-equiv-coherence-square-maps ( map-sequential-diagram A n) ( equiv-equiv-sequential-diagram B e n) ( equiv-equiv-sequential-diagram B e (succ-ℕ n)) ( map-sequential-diagram B n) ( naturality-map-hom-sequential-diagram B ( hom-equiv-sequential-diagram B e) ( n)) map-inv-equiv-sequential-diagram : ( n : ℕ) → family-sequential-diagram B n → family-sequential-diagram A n map-inv-equiv-sequential-diagram = map-equiv-sequential-diagram A inv-equiv-sequential-diagram hom-inv-equiv-sequential-diagram : hom-sequential-diagram B A hom-inv-equiv-sequential-diagram = hom-equiv-sequential-diagram A inv-equiv-sequential-diagram
Properties
Characterization of equality of sequential diagrams
Equality of sequential diagrams is captured by an equivalence between them.
equiv-eq-sequential-diagram : { l1 : Level} (A B : sequential-diagram l1) → A = B → equiv-sequential-diagram A B equiv-eq-sequential-diagram A .A refl = id-equiv-sequential-diagram A abstract is-torsorial-equiv-sequential-diagram : { l1 : Level} (A : sequential-diagram l1) → is-torsorial (equiv-sequential-diagram {l2 = l1} A) is-torsorial-equiv-sequential-diagram A = is-torsorial-Eq-structure ( is-torsorial-Eq-Π ( λ n → is-torsorial-equiv (family-sequential-diagram A n))) ( family-sequential-diagram A , λ n → id-equiv) ( is-torsorial-Eq-Π ( λ n → is-torsorial-htpy' (map-sequential-diagram A n))) is-equiv-equiv-eq-sequential-diagram : { l1 : Level} (A B : sequential-diagram l1) → is-equiv (equiv-eq-sequential-diagram A B) is-equiv-equiv-eq-sequential-diagram A = fundamental-theorem-id ( is-torsorial-equiv-sequential-diagram A) ( equiv-eq-sequential-diagram A) extensionality-sequential-diagram : { l1 : Level} (A B : sequential-diagram l1) → ( A = B) ≃ equiv-sequential-diagram A B pr1 (extensionality-sequential-diagram A B) = equiv-eq-sequential-diagram A B pr2 (extensionality-sequential-diagram A B) = is-equiv-equiv-eq-sequential-diagram A B eq-equiv-sequential-diagram : { l1 : Level} (A B : sequential-diagram l1) → equiv-sequential-diagram A B → (A = B) eq-equiv-sequential-diagram A B = map-inv-equiv (extensionality-sequential-diagram A B)
Inverses of equivalences are inverses with respect to composition of morphisms of sequential diagrams
module _ { l1 l2 : Level} {A : sequential-diagram l1} (B : sequential-diagram l2) ( e : equiv-sequential-diagram A B) where is-section-inv-equiv-sequential-diagram : htpy-hom-sequential-diagram B ( comp-hom-sequential-diagram B A B ( hom-equiv-sequential-diagram B e) ( hom-inv-equiv-sequential-diagram B e)) ( id-hom-sequential-diagram B) pr1 is-section-inv-equiv-sequential-diagram n = is-section-map-inv-equiv (equiv-equiv-sequential-diagram B e n) pr2 is-section-inv-equiv-sequential-diagram n = inv-htpy ( right-inverse-law-pasting-vertical-coherence-square-maps ( map-sequential-diagram A n) ( equiv-equiv-sequential-diagram B e n) ( equiv-equiv-sequential-diagram B e (succ-ℕ n)) ( map-sequential-diagram B n) ( naturality-equiv-sequential-diagram B e n)) is-retraction-inv-equiv-sequential-diagram : htpy-hom-sequential-diagram A ( comp-hom-sequential-diagram A B A ( hom-inv-equiv-sequential-diagram B e) ( hom-equiv-sequential-diagram B e)) ( id-hom-sequential-diagram A) pr1 is-retraction-inv-equiv-sequential-diagram n = is-retraction-map-inv-equiv (equiv-equiv-sequential-diagram B e n) pr2 is-retraction-inv-equiv-sequential-diagram n = inv-htpy ( left-inverse-law-pasting-vertical-coherence-square-maps ( map-sequential-diagram A n) ( equiv-equiv-sequential-diagram B e n) ( equiv-equiv-sequential-diagram B e (succ-ℕ n)) ( map-sequential-diagram B n) ( naturality-equiv-sequential-diagram B e n)) retraction-equiv-sequential-diagram : retraction-hom-sequential-diagram A B ( hom-equiv-sequential-diagram B e) pr1 retraction-equiv-sequential-diagram = hom-inv-equiv-sequential-diagram B e pr2 retraction-equiv-sequential-diagram = is-retraction-inv-equiv-sequential-diagram
Equivalences of sequential diagrams induce retracts of sequential diagrams
module _ { l1 l2 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} ( e : equiv-sequential-diagram A B) where retract-equiv-sequential-diagram : retract-sequential-diagram B A pr1 retract-equiv-sequential-diagram = hom-equiv-sequential-diagram B e pr2 retract-equiv-sequential-diagram = retraction-equiv-sequential-diagram B e
Recent changes
- 2024-02-19. Fredrik Bakke. Additions for coherently invertible maps (#1024).
- 2024-02-06. Egbert Rijke and Fredrik Bakke. Refactor files about identity types and homotopies (#1014).
- 2024-01-16. Vojtěch Štěpančík. Refactor functoriality and various infrastructure for sequential colimits (#978).
- 2024-01-11. Fredrik Bakke. Make type family implicit for
is-torsorial-Eq-structure
andis-torsorial-Eq-Π
(#995). - 2023-12-05. Vojtěch Štěpančík. Functoriality of sequential colimits (#919).