Documentation

Mathlib.CategoryTheory.Topos.Classifier

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.

Main results #

References #

TODO #

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.

Instances For

    A category C has a subobject classifier if there is at least one subobject classifier.

    Instances
      @[reducible, inline]

      Notation for the object in an arbitrary choice of a subobject classifier

      Equations
      Instances For
        @[reducible, inline]

        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
          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.

            theorem CategoryTheory.HasClassifier.unique {C : Type u} [Category.{v, u} C] [Limits.HasTerminal C] [HasClassifier C] {U X : C} (m : U X) [Mono m] (χ' : X Ω C) (hχ' : IsPullback m (Limits.terminal.from U) χ' (truth C)) :
            χ' = χ m

            χ m is the only map for which the associated square is a pullback square.

            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.