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
          • One or more equations did not get rendered due to their size.
          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) )