Documentation

Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero

Preservation of zero objects and zero morphisms #

We define the class PreservesZeroMorphisms and show basic properties.

Main results #

We provide the following results:

A functor preserves zero morphisms if it sends zero morphisms to zero morphisms.

  • map_zero (X Y : C) : F.map 0 = 0

    For any pair objects F (0: X ⟶ Y) = (0 : F X ⟶ F Y)

Instances
    @[simp]
    theorem CategoryTheory.Functor.map_zero {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] (X Y : C) :
    F.map 0 = 0
    theorem CategoryTheory.Functor.map_isZero {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] {X : C} (hX : Limits.IsZero X) :
    Limits.IsZero (F.obj X)
    theorem CategoryTheory.Functor.zero_of_map_zero {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] [F.Faithful] {X Y : C} (f : X Y) (h : F.map f = 0) :
    f = 0
    theorem CategoryTheory.Functor.map_eq_zero_iff {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] [F.Faithful] {X Y : C} {f : X Y} :
    F.map f = 0 f = 0
    @[instance 100]
    @[instance 100]
    @[instance 100]
    instance CategoryTheory.Functor.preservesZeroMorphisms_comp {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {E : Type u₃} [Category.{v₃, u₃} E] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] [Limits.HasZeroMorphisms E] (F : Functor C D) (G : Functor D E) [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] :
    (F.comp G).PreservesZeroMorphisms
    theorem CategoryTheory.Functor.preservesZeroMorphisms_of_iso {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] {F₁ F₂ : Functor C D} [F₁.PreservesZeroMorphisms] (e : F₁ F₂) :
    F₂.PreservesZeroMorphisms
    instance CategoryTheory.Functor.instPreservesZeroMorphismsFlipOfObj {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {E : Type u₃} [Category.{v₃, u₃} E] [Limits.HasZeroMorphisms D] [Limits.HasZeroMorphisms E] (F : Functor C (Functor D E)) [∀ (X : C), (F.obj X).PreservesZeroMorphisms] :
    F.flip.PreservesZeroMorphisms
    instance CategoryTheory.Functor.instPreservesZeroMorphismsObjFlip {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] {E : Type u₃} [Category.{v₃, u₃} E] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms E] (F : Functor C (Functor D E)) [F.PreservesZeroMorphisms] (Y : D) :
    (F.flip.obj Y).PreservesZeroMorphisms

    A functor that preserves zero morphisms also preserves the zero object.

    Equations
    • F.mapZeroObject = { hom := 0, inv := 0, hom_inv_id := , inv_hom_id := }
    Instances For
      @[simp]
      theorem CategoryTheory.Functor.mapZeroObject_hom {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroObject C] [Limits.HasZeroObject D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] :
      F.mapZeroObject.hom = 0
      @[simp]
      theorem CategoryTheory.Functor.mapZeroObject_inv {C : Type u₁} [Category.{v₁, u₁} C] {D : Type u₂} [Category.{v₂, u₂} D] [Limits.HasZeroObject C] [Limits.HasZeroObject D] [Limits.HasZeroMorphisms C] [Limits.HasZeroMorphisms D] (F : Functor C D) [F.PreservesZeroMorphisms] :
      F.mapZeroObject.inv = 0

      Preserving zero morphisms implies preserving terminal objects.

      Preserving zero morphisms implies preserving terminal objects.