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

Instances For
    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
    Instances For
      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
      Instances For
        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 := }
        Instances For

          A zero object is in particular initial.

          Equations
          Instances For

            A zero object is in particular terminal.

            Equations
            Instances For
              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
              • hX.isoIsInitial hY = hX.isInitial.uniqueUpToIso hY
              Instances For
                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
                • hX.isoIsTerminal hY = hX.isTerminal.uniqueUpToIso hY
                Instances For
                  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)) :

                  A category "has a zero object" if it has an object which is both initial and terminal.

                  • zero : ∃ (X : C), IsZero X

                    there exists a zero object

                  Instances

                    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
                    Instances For

                      Every zero object is isomorphic to the zero object.

                      Equations
                      • hX.isoZero = hX.iso
                      Instances For
                        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
                        Instances For

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

                          Equations
                          Instances For

                            A zero object is in particular initial.

                            Equations
                            Instances For

                              A zero object is in particular terminal.

                              Equations
                              Instances For
                                @[instance 10]

                                A zero object is in particular initial.

                                @[instance 10]

                                A zero object is in particular terminal.

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

                                Equations
                                Instances For

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

                                  Equations
                                  Instances For