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 #
- Define exponential ideals, and show this subcategory is an exponential ideal.
- Use the above to show that in a locally cartesian closed category, every subobject lattice is cartesian closed (equivalently, a Heyting algebra).
An object A
is subterminal iff for any Z
, there is at most one morphism Z ⟶ A
.
Equations
- CategoryTheory.IsSubterminal A = ∀ ⦃Z : C⦄ (f g : Z ⟶ A), f = g
Instances For
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
- CategoryTheory.Subterminals C = CategoryTheory.FullSubcategory fun (A : C) => CategoryTheory.IsSubterminal A
Instances For
Equations
Equations
- CategoryTheory.instInhabitedSubterminals C = { default := { obj := ⊤_ C, property := (_ : CategoryTheory.IsSubterminal (⊤_ C)) } }
The inclusion of the subterminal objects into the original category.
Equations
Instances For
Equations
- (_ : CategoryTheory.Faithful (CategoryTheory.subterminalInclusion C)) = (_ : CategoryTheory.Faithful (CategoryTheory.fullSubcategoryInclusion fun (A : C) => CategoryTheory.IsSubterminal A))
Equations
- (_ : Subsingleton (X ⟶ Y)) = (_ : Subsingleton (X ⟶ Y))
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.