Unbundled functors, as a typeclass decorating the object-level function. #
class CategoryTheory.Functorial {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : C → D) :
Type (max v₁ v₂ u₁ u₂)
An unbundled functor.
If
F : C → D(just a function) has[Functorial F], we can writemap F f : F X ⟶ F Yfor the action ofFon a morphismf : X ⟶ Y.A functorial map preserves identities.
- map_comp {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z} : map F (CategoryStruct.comp f g) = CategoryStruct.comp (map F f) (map F g)
A functorial map preserves composition of morphisms.
Instances
def CategoryTheory.Functor.of {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : C → D) [I : Functorial F] :
Functor C D
Bundle a functorial function as a functor.
Equations
- CategoryTheory.Functor.of F = { obj := F, map := fun {X Y : C} => CategoryTheory.map F, map_id := ⋯, map_comp := ⋯ }
Instances For
@[instance_reducible]
instance CategoryTheory.instFunctorialObj {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) :
Equations
- CategoryTheory.instFunctorialObj F = { map := fun {X Y : C} => F.map, map_id := ⋯, map_comp := ⋯ }
@[simp]
theorem CategoryTheory.map_functorial_obj {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] (F : Functor C D) {X Y : C} (f : X ⟶ Y) :
@[instance_reducible]
Equations
- CategoryTheory.functorial_id = { map := fun {X Y : C} (f : X ⟶ Y) => f, map_id := ⋯, map_comp := ⋯ }
@[instance_reducible]
def CategoryTheory.functorial_comp {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {E : Type u₃} [Category.{v₃, u₃} E] (F : C → D) [Functorial F] (G : D → E) [Functorial G] :
Functorial (G ∘ F)
G ∘ F is a functorial if both F and G are.
Equations
- CategoryTheory.functorial_comp F G = { map := fun {X Y : C} (f : X ⟶ Y) => CategoryTheory.map G (CategoryTheory.map F f), map_id := ⋯, map_comp := ⋯ }