Subobject Classifier #
We define what it means for a morphism in a category to be a subobject classifier
as CategoryTheory.HasClassifier.
c.f. the following Lean 3 code, where similar work was done: https://github.com/b-mehta/topos/blob/master/src/subobject_classifier.lean
Main definitions #
Let C refer to a category with a terminal object.
CategoryTheory.Classifier Cis the data of a subobject classifier inC.CategoryTheory.HasClassifier Csays that there is at least one subobject classifier.Ω Cdenotes a choice of subobject classifier.
Main results #
It is a theorem that the truth morphism
⊤_ C ⟶ Ω Cis a (split, and therefore regular) monomorphism, simply because its source is the terminal object.An instance of
IsRegularMonoCategory Cis exhibited for any category with a subobject classifier.
References #
- [S. MacLane and I. Moerdijk, Sheaves in Geometry and Logic][MLM92]
TODO #
Exhibit the equivalence between having a classifier and the functor
B => Subobject Bbeing representable.Make API for constructing a subobject classifier without reference to limits (replacing
⊤_ Cwith an arbitraryΩ₀ : Cand including the assumptionmono truth)
A morphism truth : ⊤_ C ⟶ Ω from the terminal object of a category C
is a subobject classifier if, for every monomorphism m : U ⟶ X in C,
there is a unique map χ : X ⟶ Ω such that the following square is a pullback square:
U ---------m----------> X
| |
terminal.from U χ
| |
v v
⊤_ C ------truth--------> Ω
An equivalent formulation replaces the object ⊤_ C with an arbitrary object, and instead
includes the assumption that truth is a monomorphism.
- Ω : C
The target of the truth morphism
the truth morphism for a subobject classifier
For any monomorphism
U ⟶ X, there is an associated characteristic mapX ⟶ Ω.- isPullback {U X : C} (m : U ⟶ X) [Mono m] : IsPullback m (Limits.terminal.from U) (self.χ m) self.truth
χ mforms the appropriate pullback square. - uniq {U X : C} (m : U ⟶ X) [Mono m] (χ' : X ⟶ self.Ω) (hχ' : IsPullback m (Limits.terminal.from U) χ' self.truth) : χ' = self.χ m
Instances For
A category C has a subobject classifier if there is at least one subobject classifier.
- exists_classifier : Nonempty (Classifier C)
There is some classifier.
Instances
Notation for the object in an arbitrary choice of a subobject classifier
Equations
Instances For
Notation for the "truth arrow" in an arbitrary choice of a subobject classifier
Equations
Instances For
returns the characteristic morphism of the subobject (m : U ⟶ X) [Mono m]
Equations
- CategoryTheory.HasClassifier.χ m = ⋯.some.χ m
Instances For
The diagram
U ---------m----------> X
| |
terminal.from U χ m
| |
v v
⊤_ C -----truth C-------> Ω
is a pullback square.
The diagram
U ---------m----------> X
| |
terminal.from U χ m
| |
v v
⊤_ C -----truth C-------> Ω
commutes.
χ m is the only map for which the associated square
is a pullback square.
truth C is a regular monomorphism (because it is split).
The following diagram
U ---------m----------> X
| |
terminal.from U χ m
| |
v v
⊤_ C -----truth C-------> Ω
being a pullback for any monic m means that every monomorphism
in C is the pullback of a regular monomorphism; since regularity
is stable under base change, every monomorphism is regular.
Hence, C is a regular mono category.
It also follows that C is a balanced category.
If the source of a faithful functor has a subobject classifier, the functor reflects isomorphisms. This holds for any balanced category.
If the source of a faithful functor is the opposite category of one with a subobject classifier, the same holds -- the functor reflects isomorphisms.