File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean

full_name: CategoryTheory.Functor.PreservesZeroMorphisms.map_zero
code: /-- A functor preserves zero morphisms if it sends zero morphisms to zero morphisms. -/
class PreservesZeroMorphisms (F : C ⥤ D) : Prop where
  /-- For any pair objects `F (0: X ⟶ Y) = (0 : F X ⟶ F Y)` -/
  map_zero : ∀ X Y : C, F.map (0 : X ⟶ Y) = 0 := by aesop
goal: F.map 0 = 0

full_name: CategoryTheory.Functor.PreservesZeroMorphisms
code: /-- A functor preserves zero morphisms if it sends zero morphisms to zero morphisms. -/
class PreservesZeroMorphisms (F : C ⥤ D) : Prop where
  /-- For any pair objects `F (0: X ⟶ Y) = (0 : F X ⟶ F Y)` -/
  map_zero : ∀ X Y : C, F.map (0 : X ⟶ Y) = 0 := by aesop
goal: Prop

full_name: CategoryTheory.Functor.map_zero
code: @[simp]
protected theorem map_zero (F : C ⥤ D) [PreservesZeroMorphisms F] (X Y : C) :
    F.map (0 : X ⟶ Y) = 0 
goal: F.map 0 = 0

full_name: CategoryTheory.Functor.map_isZero
code: lemma map_isZero (F : C ⥤ D) [PreservesZeroMorphisms F] {X : C} (hX : IsZero X) :
    IsZero (F.obj X) 
goal: CategoryTheory.Limits.IsZero (F.obj X)

full_name: CategoryTheory.Functor.zero_of_map_zero
code: theorem zero_of_map_zero (F : C ⥤ D) [PreservesZeroMorphisms F] [Faithful F] {X Y : C} (f : X ⟶ Y)
    (h : F.map f = 0) : f = 0 
goal: f = 0

full_name: CategoryTheory.Functor.map_eq_zero_iff
code: theorem map_eq_zero_iff (F : C ⥤ D) [PreservesZeroMorphisms F] [Faithful F] {X Y : C} {f : X ⟶ Y} :
    F.map f = 0 ↔ f = 0 
goal: F.map f = 0 ↔ f = 0

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_isLeftAdjoint
code: instance (priority := 100) preservesZeroMorphisms_of_isLeftAdjoint (F : C ⥤ D) [IsLeftAdjoint F] :
    PreservesZeroMorphisms F 
goal: F.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_isRightAdjoint
code: instance (priority := 100) preservesZeroMorphisms_of_isRightAdjoint (G : C ⥤ D) [IsRightAdjoint G] :
    PreservesZeroMorphisms G 
goal: G.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_full
code: instance (priority := 100) preservesZeroMorphisms_of_full (F : C ⥤ D) [Full F] :
    PreservesZeroMorphisms F 
goal: F.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_comp
code: instance preservesZeroMorphisms_comp (F : C ⥤ D) (G : D ⥤ E)
    [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] :
    (F ⋙ G).PreservesZeroMorphisms 
goal: (F ⋙ G).PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_iso
code: lemma preservesZeroMorphisms_of_iso {F₁ F₂ : C ⥤ D} [F₁.PreservesZeroMorphisms] (e : F₁ ≅ F₂) :
    F₂.PreservesZeroMorphisms 
goal: F₂.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_evaluation_obj
code: instance preservesZeroMorphisms_evaluation_obj (j : D) :
    PreservesZeroMorphisms ((evaluation D C).obj j) 
goal: ((CategoryTheory.evaluation D C).obj j).PreservesZeroMorphisms

full_name: CategoryTheory.Functor.mapZeroObject_hom
code: /-- A functor that preserves zero morphisms also preserves the zero object. -/
@[simps]
def mapZeroObject [PreservesZeroMorphisms F] : F.obj 0 ≅ 0 
goal: F.mapZeroObject.hom = 0

full_name: CategoryTheory.Functor.mapZeroObject_inv
code: /-- A functor that preserves zero morphisms also preserves the zero object. -/
@[simps]
def mapZeroObject [PreservesZeroMorphisms F] : F.obj 0 ≅ 0 
goal: F.mapZeroObject.inv = 0

full_name: CategoryTheory.Functor.mapZeroObject
code: /-- A functor that preserves zero morphisms also preserves the zero object. -/
@[simps]
def mapZeroObject [PreservesZeroMorphisms F] : F.obj 0 ≅ 0 
goal: F.obj 0 ≅ 0

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_map_zero_object
code: theorem preservesZeroMorphisms_of_map_zero_object (i : F.obj 0 ≅ 0) : PreservesZeroMorphisms F 
goal: F.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_preserves_initial_object
code: instance (priority := 100) preservesZeroMorphisms_of_preserves_initial_object
    [PreservesColimit (Functor.empty.{0} C) F] : PreservesZeroMorphisms F 
goal: F.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesZeroMorphisms_of_preserves_terminal_object
code: instance (priority := 100) preservesZeroMorphisms_of_preserves_terminal_object
    [PreservesLimit (Functor.empty.{0} C) F] : PreservesZeroMorphisms F 
goal: F.PreservesZeroMorphisms

full_name: CategoryTheory.Functor.preservesTerminalObjectOfPreservesZeroMorphisms
code: /-- Preserving zero morphisms implies preserving terminal objects. -/
def preservesTerminalObjectOfPreservesZeroMorphisms [PreservesZeroMorphisms F] :
    PreservesLimit (Functor.empty C) F 
goal: CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) F

full_name: CategoryTheory.Functor.preservesInitialObjectOfPreservesZeroMorphisms
code: /-- Preserving zero morphisms implies preserving terminal objects. -/
def preservesInitialObjectOfPreservesZeroMorphisms [PreservesZeroMorphisms F] :
    PreservesColimit (Functor.empty C) F 
goal: CategoryTheory.Limits.PreservesColimit (CategoryTheory.Functor.empty C) F

full_name: CategoryTheory.Functor.preservesLimitsOfShapeOfIsZero
code: /-- A zero functor preserves limits. -/
def preservesLimitsOfShapeOfIsZero : PreservesLimitsOfShape J G 
goal: CategoryTheory.Limits.PreservesLimitsOfShape J G

full_name: CategoryTheory.Functor.preservesColimitsOfShapeOfIsZero
code: /-- A zero functor preserves colimits. -/
def preservesColimitsOfShapeOfIsZero : PreservesColimitsOfShape J G 
goal: CategoryTheory.Limits.PreservesColimitsOfShape J G

full_name: CategoryTheory.Functor.preservesLimitsOfSizeOfIsZero
code: /-- A zero functor preserves limits. -/
def preservesLimitsOfSizeOfIsZero : PreservesLimitsOfSize.{v, u} G 
goal: CategoryTheory.Limits.PreservesLimitsOfSize.{v, u, v₁, v₂, u₁, u₂} G

full_name: CategoryTheory.Functor.preservesColimitsOfSizeOfIsZero
code: /-- A zero functor preserves colimits. -/
def preservesColimitsOfSizeOfIsZero : PreservesColimitsOfSize.{v, u} G 
goal: CategoryTheory.Limits.PreservesColimitsOfSize.{v, u, v₁, v₂, u₁, u₂} G