The dependent universal property of coequalizers
Content created by Vojtěch Štěpančík, Egbert Rijke and Fredrik Bakke.
Created on 2023-09-20.
Last modified on 2024-04-25.
module synthetic-homotopy-theory.dependent-universal-property-coequalizers where
Imports
open import foundation.contractible-maps open import foundation.contractible-types open import foundation.dependent-pair-types open import foundation.double-arrows open import foundation.equivalences open import foundation.fibers-of-maps open import foundation.functoriality-dependent-pair-types open import foundation.universe-levels open import synthetic-homotopy-theory.coforks open import synthetic-homotopy-theory.dependent-cocones-under-spans open import synthetic-homotopy-theory.dependent-coforks open import synthetic-homotopy-theory.dependent-universal-property-pushouts open import synthetic-homotopy-theory.universal-property-coequalizers
Idea
The dependent universal property of coequalizers is a property of
coequalizers of a
double arrow f, g : A → B, asserting that for
any type family P : X → 𝒰 over the coequalizer e : B → X, there is an
equivalence between sections of P and dependent cocones on P over e, given
by the map
dependent-cofork-map : ((x : X) → P x) → dependent-cocone e P.
Definitions
The dependent universal property of coequalizers
module _ {l1 l2 l3 : Level} (a : double-arrow l1 l2) {X : UU l3} (e : cofork a X) where dependent-universal-property-coequalizer : UUω dependent-universal-property-coequalizer = {l : Level} (P : X → UU l) → is-equiv (dependent-cofork-map a e {P = P}) module _ {l1 l2 l3 l4 : Level} (a : double-arrow l1 l2) {X : UU l3} (e : cofork a X) {P : X → UU l4} (dup-coequalizer : dependent-universal-property-coequalizer a e) where map-dependent-universal-property-coequalizer : dependent-cofork a e P → (x : X) → P x map-dependent-universal-property-coequalizer = map-inv-is-equiv (dup-coequalizer P)
Properties
The mediating dependent map obtained by the dependent universal property is unique
module _ {l1 l2 l3 l4 : Level} (a : double-arrow l1 l2) {X : UU l3} (e : cofork a X) {P : X → UU l4} (dup-coequalizer : dependent-universal-property-coequalizer a e) (k : dependent-cofork a e P) where htpy-dependent-cofork-dependent-universal-property-coequalizer : htpy-dependent-cofork a P ( dependent-cofork-map a e ( map-dependent-universal-property-coequalizer a e ( dup-coequalizer) ( k))) ( k) htpy-dependent-cofork-dependent-universal-property-coequalizer = htpy-dependent-cofork-eq a P ( dependent-cofork-map a e ( map-dependent-universal-property-coequalizer a e ( dup-coequalizer) ( k))) ( k) ( is-section-map-inv-is-equiv (dup-coequalizer P) k) abstract uniqueness-dependent-universal-property-coequalizer : is-contr ( Σ ((x : X) → P x) ( λ h → htpy-dependent-cofork a P (dependent-cofork-map a e h) k)) uniqueness-dependent-universal-property-coequalizer = is-contr-is-equiv' ( fiber (dependent-cofork-map a e) k) ( tot ( λ h → htpy-dependent-cofork-eq a P (dependent-cofork-map a e h) k)) ( is-equiv-tot-is-fiberwise-equiv ( λ h → is-equiv-htpy-dependent-cofork-eq a P ( dependent-cofork-map a e h) ( k))) ( is-contr-map-is-equiv (dup-coequalizer P) k)
A cofork has the dependent universal property of coequalizers if and only if the corresponding cocone has the dependent universal property of pushouts
As mentioned in coforks, coforks can
be thought of as special cases of cocones under spans. This theorem makes it
more precise, asserting that under this mapping,
coequalizers correspond to
pushouts.
module _ {l1 l2 l3 : Level} (a : double-arrow l1 l2) {X : UU l3} (e : cofork a X) where dependent-universal-property-coequalizer-dependent-universal-property-pushout : dependent-universal-property-pushout ( vertical-map-span-cocone-cofork a) ( horizontal-map-span-cocone-cofork a) ( cocone-codiagonal-cofork a e) → dependent-universal-property-coequalizer a e dependent-universal-property-coequalizer-dependent-universal-property-pushout ( dup-pushout) ( P) = is-equiv-left-map-triangle ( dependent-cofork-map a e) ( dependent-cofork-dependent-cocone-codiagonal a e P) ( dependent-cocone-map ( vertical-map-span-cocone-cofork a) ( horizontal-map-span-cocone-cofork a) ( cocone-codiagonal-cofork a e) ( P)) ( triangle-dependent-cofork-dependent-cocone-codiagonal a e P) ( dup-pushout P) ( is-equiv-dependent-cofork-dependent-cocone-codiagonal a e P) dependent-universal-property-pushout-dependent-universal-property-coequalizer : dependent-universal-property-coequalizer a e → dependent-universal-property-pushout ( vertical-map-span-cocone-cofork a) ( horizontal-map-span-cocone-cofork a) ( cocone-codiagonal-cofork a e) dependent-universal-property-pushout-dependent-universal-property-coequalizer ( dup-coequalizer) ( P) = is-equiv-top-map-triangle ( dependent-cofork-map a e) ( dependent-cofork-dependent-cocone-codiagonal a e P) ( dependent-cocone-map ( vertical-map-span-cocone-cofork a) ( horizontal-map-span-cocone-cofork a) ( cocone-codiagonal-cofork a e) ( P)) ( triangle-dependent-cofork-dependent-cocone-codiagonal a e P) ( is-equiv-dependent-cofork-dependent-cocone-codiagonal a e P) ( dup-coequalizer P)
The universal property of coequalizers is equivalent to the dependent universal property of coequalizers
module _ {l1 l2 l3 : Level} (a : double-arrow l1 l2) {X : UU l3} (e : cofork a X) where universal-property-dependent-universal-property-coequalizer : dependent-universal-property-coequalizer a e → universal-property-coequalizer a e universal-property-dependent-universal-property-coequalizer ( dup-coequalizer) ( Y) = is-equiv-left-map-triangle ( cofork-map a e) ( map-compute-dependent-cofork-constant-family a e Y) ( dependent-cofork-map a e) ( triangle-compute-dependent-cofork-constant-family a e Y) ( dup-coequalizer (λ _ → Y)) ( is-equiv-map-equiv ( compute-dependent-cofork-constant-family a e Y)) dependent-universal-property-universal-property-coequalizer : universal-property-coequalizer a e → dependent-universal-property-coequalizer a e dependent-universal-property-universal-property-coequalizer up-coequalizer = dependent-universal-property-coequalizer-dependent-universal-property-pushout ( a) ( e) ( dependent-universal-property-universal-property-pushout ( vertical-map-span-cocone-cofork a) ( horizontal-map-span-cocone-cofork a) ( cocone-codiagonal-cofork a e) ( universal-property-pushout-universal-property-coequalizer a e ( up-coequalizer)))
Recent changes
- 2024-04-25. Fredrik Bakke. chore: Universal properties of colimits quantify over all universe levels (#1126).
- 2024-04-06. Vojtěch Štěpančík. Rebase infrastructure for coequalizers to double arrows (#1098).
- 2024-01-27. Vojtěch Štěpančík. Refactor properties of lifts of families out of 26-descent (#988).
- 2023-11-24. Egbert Rijke. Refactor precomposition (#937).
- 2023-11-09. Egbert Rijke and Fredrik Bakke. Refactoring of retractions, sections, and equivalences, and adding the 6-for-2 property of equivalences (#903).