Functors between large precategories
Content created by Fredrik Bakke, Egbert Rijke, Jonathan Prieto-Cubides and Elisabeth Stenholm.
Created on 2022-03-11.
Last modified on 2023-10-19.
module category-theory.functors-large-precategories where
Imports
open import category-theory.large-precategories open import foundation.action-on-identifications-functions open import foundation.function-types open import foundation.identity-types open import foundation.universe-levels
Idea
A functor from a large precategory
C
to a large precategory D
consists of:
- a map
F₀ : C → D
on objects, - a map
F₁ : hom x y → hom (F₀ x) (F₀ y)
on morphisms, such that the following identities hold: F id_x = id_(F x)
,F (g ∘ f) = F g ∘ F f
.
Definition
module _ {αC αD : Level → Level} {βC βD : Level → Level → Level} (γ : Level → Level) (C : Large-Precategory αC βC) (D : Large-Precategory αD βD) where record functor-Large-Precategory : UUω where constructor make-functor field obj-functor-Large-Precategory : { l1 : Level} → obj-Large-Precategory C l1 → obj-Large-Precategory D (γ l1) hom-functor-Large-Precategory : { l1 l2 : Level} { X : obj-Large-Precategory C l1} { Y : obj-Large-Precategory C l2} → hom-Large-Precategory C X Y → hom-Large-Precategory D ( obj-functor-Large-Precategory X) ( obj-functor-Large-Precategory Y) preserves-comp-functor-Large-Precategory : { l1 l2 l3 : Level} { X : obj-Large-Precategory C l1} { Y : obj-Large-Precategory C l2} { Z : obj-Large-Precategory C l3} ( g : hom-Large-Precategory C Y Z) ( f : hom-Large-Precategory C X Y) → ( hom-functor-Large-Precategory ( comp-hom-Large-Precategory C g f)) = ( comp-hom-Large-Precategory D ( hom-functor-Large-Precategory g) ( hom-functor-Large-Precategory f)) preserves-id-functor-Large-Precategory : { l1 : Level} {X : obj-Large-Precategory C l1} → ( hom-functor-Large-Precategory ( id-hom-Large-Precategory C {X = X})) = ( id-hom-Large-Precategory D {X = obj-functor-Large-Precategory X}) open functor-Large-Precategory public
The identity functor
id-functor-Large-Precategory : {αC : Level → Level} {βC : Level → Level → Level} → (C : Large-Precategory αC βC) → functor-Large-Precategory (λ l → l) C C obj-functor-Large-Precategory ( id-functor-Large-Precategory C) = id hom-functor-Large-Precategory ( id-functor-Large-Precategory C) = id preserves-comp-functor-Large-Precategory ( id-functor-Large-Precategory C) g f = refl preserves-id-functor-Large-Precategory ( id-functor-Large-Precategory C) = refl
Composition of functors
module _ {αC αD αE γG γF : Level → Level} {βC βD βE : Level → Level → Level} (C : Large-Precategory αC βC) (D : Large-Precategory αD βD) (E : Large-Precategory αE βE) (G : functor-Large-Precategory γG D E) (F : functor-Large-Precategory γF C D) where obj-comp-functor-Large-Precategory : {l1 : Level} → obj-Large-Precategory C l1 → obj-Large-Precategory E (γG (γF l1)) obj-comp-functor-Large-Precategory = obj-functor-Large-Precategory G ∘ obj-functor-Large-Precategory F hom-comp-functor-Large-Precategory : {l1 l2 : Level} {X : obj-Large-Precategory C l1} {Y : obj-Large-Precategory C l2} → hom-Large-Precategory C X Y → hom-Large-Precategory E ( obj-comp-functor-Large-Precategory X) ( obj-comp-functor-Large-Precategory Y) hom-comp-functor-Large-Precategory = hom-functor-Large-Precategory G ∘ hom-functor-Large-Precategory F preserves-comp-comp-functor-Large-Precategory : {l1 l2 l3 : Level} {X : obj-Large-Precategory C l1} {Y : obj-Large-Precategory C l2} {Z : obj-Large-Precategory C l3} (g : hom-Large-Precategory C Y Z) (f : hom-Large-Precategory C X Y) → hom-comp-functor-Large-Precategory ( comp-hom-Large-Precategory C g f) = comp-hom-Large-Precategory E ( hom-comp-functor-Large-Precategory g) ( hom-comp-functor-Large-Precategory f) preserves-comp-comp-functor-Large-Precategory g f = ( ap ( hom-functor-Large-Precategory G) ( preserves-comp-functor-Large-Precategory F g f)) ∙ ( preserves-comp-functor-Large-Precategory G ( hom-functor-Large-Precategory F g) ( hom-functor-Large-Precategory F f)) preserves-id-comp-functor-Large-Precategory : {l1 : Level} {X : obj-Large-Precategory C l1} → hom-comp-functor-Large-Precategory (id-hom-Large-Precategory C {X = X}) = id-hom-Large-Precategory E preserves-id-comp-functor-Large-Precategory = ( ap ( hom-functor-Large-Precategory G) ( preserves-id-functor-Large-Precategory F)) ∙ ( preserves-id-functor-Large-Precategory G) comp-functor-Large-Precategory : functor-Large-Precategory (λ l → γG (γF l)) C E obj-functor-Large-Precategory comp-functor-Large-Precategory = obj-comp-functor-Large-Precategory hom-functor-Large-Precategory comp-functor-Large-Precategory = hom-comp-functor-Large-Precategory preserves-comp-functor-Large-Precategory comp-functor-Large-Precategory = preserves-comp-comp-functor-Large-Precategory preserves-id-functor-Large-Precategory comp-functor-Large-Precategory = preserves-id-comp-functor-Large-Precategory
Recent changes
- 2023-10-19. Fredrik Bakke. Level-universe compatibility patch (#862).
- 2023-10-17. Egbert Rijke and Fredrik Bakke. Adjunctions of large categories and some minor refactoring (#854).
- 2023-09-27. Fredrik Bakke. Presheaf categories (#801).
- 2023-09-26. Fredrik Bakke and Egbert Rijke. Maps of categories, functor categories, and small subprecategories (#794).
- 2023-06-10. Egbert Rijke. cleaning up transport and dependent identifications files (#650).