Documentation

Mathlib.CategoryTheory.Limits.Shapes.ZeroObjects

Zero objects #

A category "has a zero object" if it has an object which is both initial and terminal. Having a zero object provides zero morphisms, as the unique morphisms factoring through the zero object; see CategoryTheory.Limits.Shapes.ZeroMorphisms.

References #

structure CategoryTheory.Limits.IsZero {C : Type u} [Category.{v, u} C] (X : C) :

An object X in a category is a zero object if for every object Y there is a unique morphism to : X → Y and a unique morphism from : Y → X.

This is a characteristic predicate for has_zero_object.

  • unique_to (Y : C) : Nonempty (Unique (X Y))

    there are unique morphisms to the object

  • unique_from (Y : C) : Nonempty (Unique (Y X))

    there are unique morphisms from the object

def CategoryTheory.Limits.IsZero.to_ {C : Type u} [Category.{v, u} C] {X : C} (h : IsZero X) (Y : C) :
X Y

If h : IsZero X, then h.to_ Y is a choice of unique morphism X → Y.

Equations
theorem CategoryTheory.Limits.IsZero.eq_to {C : Type u} [Category.{v, u} C] {X Y : C} (h : IsZero X) (f : X Y) :
f = h.to_ Y
theorem CategoryTheory.Limits.IsZero.to_eq {C : Type u} [Category.{v, u} C] {X Y : C} (h : IsZero X) (f : X Y) :
h.to_ Y = f
def CategoryTheory.Limits.IsZero.from_ {C : Type u} [Category.{v, u} C] {X : C} (h : IsZero X) (Y : C) :
Y X

If h : is_zero X, then h.from_ Y is a choice of unique morphism Y → X.

Equations
theorem CategoryTheory.Limits.IsZero.eq_from {C : Type u} [Category.{v, u} C] {X Y : C} (h : IsZero X) (f : Y X) :
f = h.from_ Y
theorem CategoryTheory.Limits.IsZero.from_eq {C : Type u} [Category.{v, u} C] {X Y : C} (h : IsZero X) (f : Y X) :
h.from_ Y = f
theorem CategoryTheory.Limits.IsZero.eq_of_src {C : Type u} [Category.{v, u} C] {X Y : C} (hX : IsZero X) (f g : X Y) :
f = g
theorem CategoryTheory.Limits.IsZero.eq_of_tgt {C : Type u} [Category.{v, u} C] {X Y : C} (hX : IsZero X) (f g : Y X) :
f = g
theorem CategoryTheory.Limits.IsZero.epi {C : Type u} [Category.{v, u} C] {X : C} (h : IsZero X) {Y : C} (f : Y X) :
Epi f
theorem CategoryTheory.Limits.IsZero.mono {C : Type u} [Category.{v, u} C] {X : C} (h : IsZero X) {Y : C} (f : X Y) :
def CategoryTheory.Limits.IsZero.iso {C : Type u} [Category.{v, u} C] {X Y : C} (hX : IsZero X) (hY : IsZero Y) :
X Y

Any two zero objects are isomorphic.

Equations
  • hX.iso hY = { hom := hX.to_ Y, inv := hX.from_ Y, hom_inv_id := , inv_hom_id := }

A zero object is in particular initial.

Equations

A zero object is in particular terminal.

Equations
def CategoryTheory.Limits.IsZero.isoIsInitial {C : Type u} [Category.{v, u} C] {X Y : C} (hX : IsZero X) (hY : IsInitial Y) :
X Y

The (unique) isomorphism between any initial object and the zero object.

Equations
def CategoryTheory.Limits.IsZero.isoIsTerminal {C : Type u} [Category.{v, u} C] {X Y : C} (hX : IsZero X) (hY : IsTerminal Y) :
X Y

The (unique) isomorphism between any terminal object and the zero object.

Equations
theorem CategoryTheory.Limits.IsZero.of_iso {C : Type u} [Category.{v, u} C] {X Y : C} (hY : IsZero Y) (e : X Y) :
theorem CategoryTheory.Functor.isZero {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (F : Functor C D) (hF : ∀ (X : C), Limits.IsZero (F.obj X)) :

Construct a Zero C for a category with a zero object. This can not be a global instance as it will trigger for every Zero C typeclass search.

Equations

Every zero object is isomorphic to the zero object.

Equations
theorem CategoryTheory.Limits.IsZero.obj {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] [HasZeroObject D] {F : Functor C D} (hF : IsZero F) (X : C) :
IsZero (F.obj X)

There is a unique morphism from the zero object to any object X.

Equations

There is a unique morphism from any object X to the zero object.

Equations
@[instance 10]

A zero object is in particular initial.

@[instance 10]

A zero object is in particular terminal.