Isomorphism induction in precategories
Content created by Egbert Rijke and Fredrik Bakke.
Created on 2023-10-20.
Last modified on 2023-11-24.
module category-theory.isomorphism-induction-precategories where
Imports
open import category-theory.isomorphisms-in-precategories open import category-theory.precategories open import foundation.commuting-triangles-of-maps open import foundation.dependent-pair-types open import foundation.function-types open import foundation.identity-systems open import foundation.identity-types open import foundation.sections open import foundation.torsorial-type-families open import foundation.universe-levels
Idea
Isomorphism induction in a precategory 𝒞
is the principle asserting that,
given an object A : 𝒞
and any type family
P : (B : 𝒞) (ϕ : A ≅ B) → 𝒰
of types indexed by all
isomorphisms with domain A
,
there is a section of the evaluation map
((B : 𝒞) (ϕ : A ≅ B) → P B ϕ) → P A id-iso.
The principle of isomorphism induction is equivalent to the univalence axiom for categories, hence this is one approach to proving that a precategory is a category.
Statement
module _ {l1 l2 : Level} (C : Precategory l1 l2) {A : obj-Precategory C} where ev-id-iso-Precategory : {l : Level} (P : (B : obj-Precategory C) → (iso-Precategory C A B) → UU l) → ((B : obj-Precategory C) (e : iso-Precategory C A B) → P B e) → P A (id-iso-Precategory C) ev-id-iso-Precategory P f = f A (id-iso-Precategory C) induction-principle-iso-Precategory : {l : Level} (P : (B : obj-Precategory C) → iso-Precategory C A B → UU l) → UU (l1 ⊔ l2 ⊔ l) induction-principle-iso-Precategory P = section (ev-id-iso-Precategory P) triangle-ev-id-iso-Precategory : {l : Level} (P : (B : obj-Precategory C) → iso-Precategory C A B → UU l) → coherence-triangle-maps ( ev-point (A , id-iso-Precategory C)) ( ev-id-iso-Precategory P) ( ev-pair) triangle-ev-id-iso-Precategory P f = refl
Properties
Contractibility of the total space of isomorphisms implies isomorphism induction
module _ {l1 l2 : Level} (C : Precategory l1 l2) {A : obj-Precategory C} where abstract is-identity-system-is-torsorial-iso-Precategory : is-torsorial (iso-Precategory C A) → is-identity-system (iso-Precategory C A) A (id-iso-Precategory C) is-identity-system-is-torsorial-iso-Precategory = is-identity-system-is-torsorial A (id-iso-Precategory C)
Isomorphism induction implies contractibility of the total space of isomorphisms
module _ {l1 l2 : Level} (C : Precategory l1 l2) {A : obj-Precategory C} where is-torsorial-equiv-induction-principle-iso-Precategory : is-identity-system (iso-Precategory C A) A (id-iso-Precategory C) → is-torsorial (iso-Precategory C A) is-torsorial-equiv-induction-principle-iso-Precategory = is-torsorial-is-identity-system A (id-iso-Precategory C)
Recent changes
- 2023-11-24. Egbert Rijke. Refactor precomposition (#937).
- 2023-10-21. Egbert Rijke and Fredrik Bakke. Implement
is-torsorial
throughout the library (#875). - 2023-10-21. Egbert Rijke. Rename
is-contr-total
tois-torsorial
(#871). - 2023-10-20. Fredrik Bakke and Egbert Rijke. Nonunital precategories (#864).
- 2023-10-20. Fredrik Bakke and Egbert Rijke. Small subcategories (#861).