Faithful maps between precategories
Content created by Fredrik Bakke and Egbert Rijke.
Created on 2023-10-16.
Last modified on 2024-04-11.
module category-theory.faithful-maps-precategories where
Imports
open import category-theory.maps-precategories open import category-theory.precategories open import foundation.dependent-pair-types open import foundation.embeddings open import foundation.equivalences open import foundation.function-types open import foundation.injective-maps open import foundation.iterated-dependent-product-types open import foundation.logical-equivalences open import foundation.propositions open import foundation.sets open import foundation.universe-levels
Idea
A map between
precategories C
and D
is faithful if
it’s an embedding on hom-sets.
Note that embeddings on sets happen to coincide with injections, but we define it in terms of the stronger notion, as this is the notion that generalizes.
Definition
The predicate on maps between precategories of being faithful
module _ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4) (F : map-Precategory C D) where is-faithful-map-Precategory : UU (l1 ⊔ l2 ⊔ l4) is-faithful-map-Precategory = (x y : obj-Precategory C) → is-emb (hom-map-Precategory C D F {x} {y}) is-prop-is-faithful-map-Precategory : is-prop is-faithful-map-Precategory is-prop-is-faithful-map-Precategory = is-prop-iterated-Π 2 ( λ x y → is-property-is-emb (hom-map-Precategory C D F {x} {y})) is-faithful-prop-map-Precategory : Prop (l1 ⊔ l2 ⊔ l4) pr1 is-faithful-prop-map-Precategory = is-faithful-map-Precategory pr2 is-faithful-prop-map-Precategory = is-prop-is-faithful-map-Precategory
The type of faithful maps between two precategories
module _ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4) where faithful-map-Precategory : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) faithful-map-Precategory = Σ (map-Precategory C D) (is-faithful-map-Precategory C D) map-faithful-map-Precategory : faithful-map-Precategory → map-Precategory C D map-faithful-map-Precategory = pr1 is-faithful-faithful-map-Precategory : (F : faithful-map-Precategory) → is-faithful-map-Precategory C D (map-faithful-map-Precategory F) is-faithful-faithful-map-Precategory = pr2 obj-faithful-map-Precategory : faithful-map-Precategory → obj-Precategory C → obj-Precategory D obj-faithful-map-Precategory = obj-map-Precategory C D ∘ map-faithful-map-Precategory hom-faithful-map-Precategory : (F : faithful-map-Precategory) {x y : obj-Precategory C} → hom-Precategory C x y → hom-Precategory D ( obj-faithful-map-Precategory F x) ( obj-faithful-map-Precategory F y) hom-faithful-map-Precategory = hom-map-Precategory C D ∘ map-faithful-map-Precategory
The predicate on maps between precategories of being injective on hom-sets
module _ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4) (F : map-Precategory C D) where is-injective-hom-map-Precategory : UU (l1 ⊔ l2 ⊔ l4) is-injective-hom-map-Precategory = (x y : obj-Precategory C) → is-injective (hom-map-Precategory C D F {x} {y}) is-prop-is-injective-hom-map-Precategory : is-prop is-injective-hom-map-Precategory is-prop-is-injective-hom-map-Precategory = is-prop-iterated-Π 2 ( λ x y → is-prop-is-injective ( is-set-hom-Precategory C x y) ( hom-map-Precategory C D F {x} {y})) is-injective-hom-prop-map-Precategory : Prop (l1 ⊔ l2 ⊔ l4) pr1 is-injective-hom-prop-map-Precategory = is-injective-hom-map-Precategory pr2 is-injective-hom-prop-map-Precategory = is-prop-is-injective-hom-map-Precategory
Properties
A map of precategories is faithful if and only if it is injective on hom-sets
module _ {l1 l2 l3 l4 : Level} (C : Precategory l1 l2) (D : Precategory l3 l4) (F : map-Precategory C D) where is-injective-hom-is-faithful-map-Precategory : is-faithful-map-Precategory C D F → is-injective-hom-map-Precategory C D F is-injective-hom-is-faithful-map-Precategory is-faithful-F x y = is-injective-is-emb (is-faithful-F x y) is-faithful-is-injective-hom-map-Precategory : is-injective-hom-map-Precategory C D F → is-faithful-map-Precategory C D F is-faithful-is-injective-hom-map-Precategory is-injective-hom-F x y = is-emb-is-injective ( is-set-hom-Precategory D ( obj-map-Precategory C D F x) ( obj-map-Precategory C D F y)) ( is-injective-hom-F x y) is-equiv-is-injective-hom-is-faithful-map-Precategory : is-equiv is-injective-hom-is-faithful-map-Precategory is-equiv-is-injective-hom-is-faithful-map-Precategory = is-equiv-has-converse-is-prop ( is-prop-is-faithful-map-Precategory C D F) ( is-prop-is-injective-hom-map-Precategory C D F) ( is-faithful-is-injective-hom-map-Precategory) is-equiv-is-faithful-is-injective-hom-map-Precategory : is-equiv is-faithful-is-injective-hom-map-Precategory is-equiv-is-faithful-is-injective-hom-map-Precategory = is-equiv-has-converse-is-prop ( is-prop-is-injective-hom-map-Precategory C D F) ( is-prop-is-faithful-map-Precategory C D F) ( is-injective-hom-is-faithful-map-Precategory) equiv-is-injective-hom-is-faithful-map-Precategory : is-faithful-map-Precategory C D F ≃ is-injective-hom-map-Precategory C D F pr1 equiv-is-injective-hom-is-faithful-map-Precategory = is-injective-hom-is-faithful-map-Precategory pr2 equiv-is-injective-hom-is-faithful-map-Precategory = is-equiv-is-injective-hom-is-faithful-map-Precategory equiv-is-faithful-is-injective-hom-map-Precategory : is-injective-hom-map-Precategory C D F ≃ is-faithful-map-Precategory C D F pr1 equiv-is-faithful-is-injective-hom-map-Precategory = is-faithful-is-injective-hom-map-Precategory pr2 equiv-is-faithful-is-injective-hom-map-Precategory = is-equiv-is-faithful-is-injective-hom-map-Precategory
See also
Recent changes
- 2024-04-11. Fredrik Bakke and Egbert Rijke. Propositional operations (#1008).
- 2024-01-27. Egbert Rijke. Fix “The predicate of” section headers (#1010).
- 2023-11-01. Fredrik Bakke. Opposite categories, gaunt categories, replete subprecategories, large Yoneda, and miscellaneous additions (#880).
- 2023-10-20. Fredrik Bakke and Egbert Rijke. Small subcategories (#861).
- 2023-10-16. Fredrik Bakke. The simplex precategory (#845).