Documentation

Mathlib.CategoryTheory.Subterminal

Subterminal objects #

Subterminal objects are the objects which can be thought of as subobjects of the terminal object. In fact, the definition can be constructed to not require a terminal object, by defining A to be subterminal iff for any Z, there is at most one morphism Z ⟶ A. An alternate definition is that the diagonal morphism A ⟶ A ⨯ A is an isomorphism. In this file we define subterminal objects and show the equivalence of these three definitions.

We also construct the subcategory of subterminal objects.

TODO #

An object A is subterminal iff for any Z, there is at most one morphism Z ⟶ A.

Equations
    Instances For
      theorem CategoryTheory.IsSubterminal.def {C : Type u₁} [Category.{v₁, u₁} C] {A : C} :
      IsSubterminal A ∀ ⦃Z : C⦄ (f g : Z A), f = g

      If A is subterminal, the unique morphism from it to a terminal object is a monomorphism. The converse of isSubterminal_of_mono_isTerminal_from.

      If A is subterminal, the unique morphism from it to the terminal object is a monomorphism. The converse of isSubterminal_of_mono_terminal_from.

      If the unique morphism from A to a terminal object is a monomorphism, A is subterminal. The converse of IsSubterminal.mono_isTerminal_from.

      If the unique morphism from A to the terminal object is a monomorphism, A is subterminal. The converse of IsSubterminal.mono_terminal_from.

      If A is subterminal, its diagonal morphism is an isomorphism. The converse of isSubterminal_of_isIso_diag.

      If the diagonal morphism of A is an isomorphism, then it is subterminal. The converse of isSubterminal.isIso_diag.

      If A is subterminal, it is isomorphic to A ⨯ A.

      Equations
        Instances For

          The (full sub)category of subterminal objects. TODO: If C is the category of sheaves on a topological space X, this category is equivalent to the lattice of open subsets of X. More generally, if C is a topos, this is the lattice of "external truth values".

          Equations
            Instances For

              The inclusion of the subterminal objects into the original category.

              Equations
                Instances For

                  The category of subterminal objects is equivalent to the category of monomorphisms to the terminal object (which is in turn equivalent to the subobjects of the terminal object).

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.subterminalsEquivMonoOverTerminal_counitIso (C : Type u₁) [Category.{v₁, u₁} C] [Limits.HasTerminal C] :
                      (subterminalsEquivMonoOverTerminal C).counitIso = NatIso.ofComponents (fun (X : MonoOver (⊤_ C)) => MonoOver.isoMk (Iso.refl (({ obj := fun (X : MonoOver (⊤_ C)) => { obj := X.obj.left, property := }, map := fun {X Y : MonoOver (⊤_ C)} (f : X Y) => f.left, map_id := , map_comp := }.comp { obj := fun (X : Subterminals C) => { obj := Over.mk (Limits.terminal.from X.obj), property := }, map := fun {X Y : Subterminals C} (f : X Y) => MonoOver.homMk f , map_id := , map_comp := }).obj X).obj.left) )