Documentation

Mathlib.CategoryTheory.Limits.Shapes.Terminal

Initial and terminal objects in a category. #

References #

@[reducible, inline]

A category has a terminal object if it has a limit over the empty diagram. Use hasTerminal_of_unique to construct instances.

Equations
Instances For
    @[reducible, inline]

    A category has an initial object if it has a colimit over the empty diagram. Use hasInitial_of_unique to construct instances.

    Equations
    Instances For
      @[reducible, inline]
      noncomputable abbrev CategoryTheory.Limits.terminal (C : Type u₁) [Category.{v₁, u₁} C] [HasTerminal C] :
      C

      An arbitrary choice of terminal object, if one exists. You can use the notation ⊤_ C. This object is characterized by having a unique morphism from any object.

      Equations
      Instances For
        @[reducible, inline]
        noncomputable abbrev CategoryTheory.Limits.initial (C : Type u₁) [Category.{v₁, u₁} C] [HasInitial C] :
        C

        An arbitrary choice of initial object, if one exists. You can use the notation ⊥_ C. This object is characterized by having a unique morphism to any object.

        Equations
        Instances For

          Notation for the terminal object in C

          Equations
          Instances For

            Notation for the initial object in C

            Equations
            Instances For
              theorem CategoryTheory.Limits.hasTerminal_of_unique {C : Type u₁} [Category.{v₁, u₁} C] (X : C) [∀ (Y : C), Nonempty (Y X)] [∀ (Y : C), Subsingleton (Y X)] :

              We can more explicitly show that a category has a terminal object by specifying the object, and showing there is a unique morphism to it from any other object.

              theorem CategoryTheory.Limits.hasInitial_of_unique {C : Type u₁} [Category.{v₁, u₁} C] (X : C) [∀ (Y : C), Nonempty (X Y)] [∀ (Y : C), Subsingleton (X Y)] :

              We can more explicitly show that a category has an initial object by specifying the object, and showing there is a unique morphism from it to any other object.

              @[reducible, inline]
              noncomputable abbrev CategoryTheory.Limits.terminal.from {C : Type u₁} [Category.{v₁, u₁} C] [HasTerminal C] (P : C) :
              P ⊤_ C

              The map from an object to the terminal object.

              Equations
              Instances For
                @[reducible, inline]
                noncomputable abbrev CategoryTheory.Limits.initial.to {C : Type u₁} [Category.{v₁, u₁} C] [HasInitial C] (P : C) :
                ⊥_ C P

                The map to an object from the initial object.

                Equations
                Instances For

                  A terminal object is terminal.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    An initial object is initial.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem CategoryTheory.Limits.initial.hom_ext {C : Type u₁} [Category.{v₁, u₁} C] [HasInitial C] {P : C} (f g : ⊥_ C P) :
                      f = g
                      noncomputable def CategoryTheory.Limits.initialIsoIsInitial {C : Type u₁} [Category.{v₁, u₁} C] [HasInitial C] {P : C} (t : IsInitial P) :
                      ⊥_ C P

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

                      Equations
                      Instances For
                        noncomputable def CategoryTheory.Limits.terminalIsoIsTerminal {C : Type u₁} [Category.{v₁, u₁} C] [HasTerminal C] {P : C} (t : IsTerminal P) :
                        ⊤_ C P

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

                        Equations
                        Instances For

                          Any morphism from a terminal object is split mono.

                          Any morphism to an initial object is split epi.

                          The limit of the constant ⊤_ C functor is ⊤_ C.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            The colimit of the constant ⊥_ C functor is ⊥_ C.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[instance 100]

                              To show a category is an InitialMonoClass it suffices to show every morphism out of the initial object is a monomorphism.

                              To show a category is an InitialMonoClass it suffices to show the unique morphism from the initial object to a terminal object is a monomorphism.

                              The comparison morphism from the image of a terminal object to the terminal object in the target category. This is an isomorphism iff G preserves terminal objects, see CategoryTheory.Limits.PreservesTerminal.ofIsoComparison.

                              Equations
                              Instances For

                                The comparison morphism from the initial object in the target category to the image of the initial object.

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  noncomputable abbrev CategoryTheory.Limits.limitOfInitial {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] (F : Functor J C) [HasInitial J] :
                                  limit F F.obj (⊥_ J)

                                  For a functor F : J ⥤ C, if J has an initial object then the image of it is isomorphic to the limit of F.

                                  Equations
                                  Instances For
                                    instance CategoryTheory.Limits.hasLimit_of_domain_hasTerminal {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] [HasTerminal J] {F : Functor J C} [∀ (i j : J) (f : i j), IsIso (F.map f)] :
                                    @[reducible, inline]
                                    noncomputable abbrev CategoryTheory.Limits.limitOfTerminal {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] (F : Functor J C) [HasTerminal J] [∀ (i j : J) (f : i j), IsIso (F.map f)] :
                                    limit F F.obj (⊤_ J)

                                    For a functor F : J ⥤ C, if J has a terminal object and all the morphisms in the diagram are isomorphisms, then the image of the terminal object is isomorphic to the limit of F.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[reducible, inline]
                                      noncomputable abbrev CategoryTheory.Limits.colimitOfTerminal {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] (F : Functor J C) [HasTerminal J] :

                                      For a functor F : J ⥤ C, if J has a terminal object then the image of it is isomorphic to the colimit of F.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        instance CategoryTheory.Limits.hasColimit_of_domain_hasInitial {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] [HasInitial J] {F : Functor J C} [∀ (i j : J) (f : i j), IsIso (F.map f)] :
                                        @[reducible, inline]
                                        noncomputable abbrev CategoryTheory.Limits.colimitOfInitial {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] (F : Functor J C) [HasInitial J] [∀ (i j : J) (f : i j), IsIso (F.map f)] :

                                        For a functor F : J ⥤ C, if J has an initial object and all the morphisms in the diagram are isomorphisms, then the image of the initial object is isomorphic to the colimit of F.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          If j is initial in the index category, then the map limit.π F j is an isomorphism.

                                          theorem CategoryTheory.Limits.isIso_π_of_isTerminal {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] {j : J} (I : IsTerminal j) (F : Functor J C) [HasLimit F] [∀ (i j : J) (f : i j), IsIso (F.map f)] :
                                          instance CategoryTheory.Limits.isIso_π_terminal {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] [HasTerminal J] (F : Functor J C) [∀ (i j : J) (f : i j), IsIso (F.map f)] :

                                          If j is terminal in the index category, then the map colimit.ι F j is an isomorphism.

                                          theorem CategoryTheory.Limits.isIso_ι_of_isInitial {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] {j : J} (I : IsInitial j) (F : Functor J C) [HasColimit F] [∀ (i j : J) (f : i j), IsIso (F.map f)] :
                                          instance CategoryTheory.Limits.isIso_ι_initial {C : Type u₁} [Category.{v₁, u₁} C] {J : Type u} [Category.{v, u} J] [HasInitial J] (F : Functor J C) [∀ (i j : J) (f : i j), IsIso (F.map f)] :