subobject classifier


Topos Theory

topos theory



Internal Logic

Topos morphisms

Extra stuff, structure, properties

Cohomology and homotopy

In higher category theory





Subsets AA of a set XX correspond precisely to maps from XX to the set of truth values of classical logic via their characteristic function χ A:X{0,1}\chi_A:X\to \{0,1\} . The concept of a subobject classifier generalizes this situation to toposes other than Set:

A subobject classifier in a topos is a morphism true:*Ωtrue : * \to \Omega such that every monomorphism ABA \hookrightarrow B in the topos (hence every subobject) is the pullback of this morphism along a unique morphism (the characteristic morphism of AA) BΩB \to \Omega.

In this sense Ω\Omega is the classifying object for subobjects and true:*Ωtrue : * \to \Omega the generic subobject.

That the existence of a subobject classifier in a category is a very powerful property that induces much other structure lies at the heart of topos theory.

By restricting the class of monomorphism appropriately, the concept can be relativized to the concept of an M-subobject classifier1: e.g. demanding only classification of strong monomorphisms leads to quasitoposes.



In a category CC with finite limits, a subobject classifier is a monomorphism true:*Ωtrue : * \to \Omega out of the terminal object, such that for every monomorphism UXU \to X in CC there is a unique morphism χ U:XΩ\chi_U : X \to \Omega such that there is a pullback diagram

U * true X χ U Ω. \array{ U &\to& * \\ \downarrow && \downarrow^{\mathrlap{true}} \\ X &\stackrel{\chi_U}{\to}& \Omega } \,.

See for instance (MacLane-Moerdijk, p. 32).


Some terminology:

If it exists, the object Ω\Omega is also called the object of truth values, a global element KΩK \to \Omega is called a truth value and the element true:*Ωtrue : * \hookrightarrow \Omega is the truth value true, where all these terms allude to the internal logic of the category CC.

Note that the subobjects classified by the truth values are subterminal objects.

The morphism χ U\chi_U is also called the characteristic map or classifying map of the subobject UXU \hookrightarrow X.


If CC has finite limits and is in addition a locally small category, then it has a subobject classifier precisely if the subobject-assigning presheaf

Sub:C opSet Sub : C^{op} \to Set
X{UX}/ X \mapsto \{U \hookrightarrow X\}/\sim

is representable. In this case the representing object is the subobject classifier: there is a natural isomorphism

Sub(X)C(X,Ω) Sub(X) \simeq C(X, \Omega)

in XCX \in C.

Moreover, in this case CC is well powered.

This appears for instance as (MacLane-Moerdijk, prop. I.3.1).

In more detail: given a morphism f:cdf: c \to d in CC, the function

Sub(f):Sub(d)Sub(c) Sub(f): Sub(d) \to Sub(c)

takes a subobject i:tdi: t \hookrightarrow d to the subobject of cc obtained by pulling back ii along ff. (Notice that monomorphisms, as discussed there, are stable under pullback.)

The representability of this functor means there is an object Ω\Omega together with a subobject t:TΩt: T \hookrightarrow \Omega which is universal, meaning that given any subobject i:sci: s \hookrightarrow c, there is a unique morphism f:cΩf: c \to \Omega such that ii is obtained as the pullback of tt along ff.


To see that a subobject classifier induces such a natural isomorphism, we need that the morphisms Sub(f)Sub(f) for fMor(C)f \in Mor(C) corresponds to the morphisms C(f,Ω)C(f,\Omega). This is the pasting law for pullbacks.

Conversely, to see that a subobjects-representing object Ω\Omega is a subobject classifier, use that by naturality we have for each morphism ϕ:XΩ \phi : X \to \Omega a commuting diagram

Sub(Ω) C(Ω,Ω) Sub(ϕ) C(ϕ,Ω) Sub(X) C(X,Ω) \array{ Sub(\Omega) &\stackrel{\simeq}{\to}& C(\Omega, \Omega) \\ {}^{\mathllap{Sub(\phi)}}\downarrow && \downarrow^{\mathrlap{C(\phi,\Omega)}} \\ Sub(X) &\stackrel{\simeq}{\to}& C(X, \Omega) }

whose commutativity says that every element of Sub(X)Sub(X) is the pullback along some ϕ:XΩ\phi : X \to \Omega of the subobject of Ω\Omega corresponding under the natural isomorphism to Id:ΩΩId : \Omega \to \Omega.

By further playing around with this one finds that this latter subobject of Ω\Omega has to be a terminal object.


In SetSet

In the category of sets, the 2-element set 2={f,t}\mathbf{2} = \{f, t\} plays the role of Ω\Omega; the morphism t:12t: 1 \to \mathbf{2} just names the element tt. Given a subset SXS \subseteq X, the characteristic function χ S:X2\chi_S: X \to \mathbf{2} is the function defined by χ S(x)=t\chi_S(x) = t if xSx \in S, and χ S(x)=f\chi_S(x) = f if xSx \notin S.


It is not usually true in toposes that Ω\Omega is the coproduct 2=1+1\mathbf{2} = 1 + 1; toposes where that occurs are called Boolean. Thus the category SetSet of sets is a Boolean topos, as is the presheaf topos Set GSet^G when GG is a groupoid.

In a presheaf topos

The subobject classifier in a presheaf topos PSh(S)PSh(S) is the presheaf that sends each object USU \in S to the set sieves(U)sieves(U) of sieves on it, equivalently the set of subobjects of the representable presheaf Y(U)Y(U): Ω:Usieves(U)\Omega : U \mapsto sieves(U).

The corresponding morphism true:*Ωtrue : * \to \Omega of presheaves is the natural transformation that picks over each object the maximal sieve true U=maximal sieves(U):*sieves(U)true_U = maximal_{sieves(U)} : * \to sieves(U).

In GSetG Set

As a special case of presheaf toposes, for GG a discrete group and GSet=[BG,Set]G Set = [\mathbf{B} G, Set] the topos of permutation representations, there are precisely two sieves on the single object of the delooping groupoid BG\mathbf{B}G: the trivial one and the empty one. Hence the subobject classifier here is the 2-element set as in Set, but now regarded as a GG-set with trivial GG-action.

In a non-boolean topos

An example of a non-Boolean topos is the category of sheaves over a “typical” topological space XX such as the real line \mathbb{R} in its usual topology. In this case, Ω\Omega is the sheaf where the set of sections over an open subset UU is the set of open subsets of UU, with the obvious restriction maps; the sheaf topos in this case is guaranteed to be non-Boolean provided there are some non-regular open sets in XX (a open set is regular if it is the interior of its closure). The “internal logic” of such a topos is intuitionistic.

In a slice topos


Let \mathcal{E} be a topos and XX \in \mathcal{E} any object. Write /X\mathcal{E}/X for the corresponding over-topos.

The subobject classifier of /X\mathcal{E}/X is p 2:Ω ×XXp_2 : \Omega_{\mathcal{E}} \times X \to X.


This follows for instance from the statement that the inverse image of any base change geometric morphism is a logical functor and hence preserves subobject classifiers: Here we are looking at the base change along p:X*p : X \to * and hence p *Ω Ω ×Xp^* \Omega_{\mathcal{E}}\simeq \Omega_{\mathcal{E}} \times X.

But the statement is also easily directly checked.

In a non-topos

The category Set *Set_\ast of pointed sets has a subobject classifier (specified up to unique isomorphism as the pointed set with two elements).

If one is willing to admit non-locally small categories, then the category of classes in ZFC is not a topos (it is not cartesian closed) but has a subobject classifier: any two-element set.


Suppose a category C\mathbf{C} has a subobject classifier; this entails some striking structural consequences for C\mathbf{C}. We list a few here:


Every monomorphism in C\mathbf{C} is a regular monomorphism, i.e., is an equalizer of some pair of maps.


For χ i:XΩ\chi_i: X \to \Omega the characteristic map of a mono i:AXi: A \to X, we find that ii is the equalizer of a pair of maps XΩX \rightrightarrows \Omega:

1 ! t X χ i Ω.\array{ & & 1 \\ & \mathllap{!} \nearrow & \downarrow \mathrlap{t} \\ X & \underset{\chi_i}{\to} & \Omega. }

C\mathbf{C} is balanced, i.e., a morphism in C\mathbf{C} is an isomorphism iff it is both monic and epic.


“Only if” is trivial. The “if” comes from the fact that an epic (epimorphic) equalizer must be an isomorphism, for if i:AXi: A \to X is the equalizer of f,g:XYf, g: X \rightrightarrows Y and ii is epic, then f=gf = g, whence 1 X1_X is their equalizer, so i:AXi: A \to X must have been an isomorphism.


ny two epi-mono factorizations of a map in C\mathbf{C} are canonically isomorphic.


Suppose ip=jqi p = j q where p,qp, q are epic and i,ji, j are monic. Since jj is regular, it is the equalizer of some parallel pair f,gf, g as in the diagram

A p B q i C j D gf E,\array{ A & \stackrel{p}{\to} & B & & \\ \mathllap{q} \downarrow & & \downarrow \mathrlap{i} & & \\ C & \underset{j}{\to} & D & \stackrel{\overset{f}{\to}}{\underset{g}{\to}} & E, }

so that fip=fjq=gjq=gipf i p = f j q = g j q = g i p, whence fi=gif i = g i since pp is epic, whence ii factors through jj as jj is the equalizer: i=jki = j k for some k:BCk: B \to C. Then also kp=qk p = q since jkp=ip=jqj k p = i p = j q and jj is monic. We have that kk is monic since ii is, and kk is epic since qq is. Thus kk is an isomorphism.

Already these results impose some tight restrictions on C\mathbf{C}. We get some more by exploiting the internal structure of Ω\Omega.

The subobject classifier always comes with the structure of an internal poset; that is, a relation Ω×Ω\subseteq\, \hookrightarrow \Omega\times\Omega which is internally reflexive, antisymmetric, and transitive. This can be constructed directly (see Proposition 5 below), or obtained via the Yoneda lemma since the collection of subobjects of any object is an external poset.

Similarly, since we assume that C\mathbf{C} is finitely complete, each subobject poset Sub(X)Sub(X) has intersections (gotten as pullbacks or fiber products of pairs of monics i:AX,j:BXi: A \to X,j: B \to X), and the intersection operation

:Sub(X)×Sub(X)Sub(X)\cap: Sub(X) \times Sub(X) \to Sub(X)

is natural in XX. Hence we have a family of maps

:hom(X,Ω×Ω)hom(X,Ω)\cap: \hom(X, \Omega \times \Omega) \to \hom(X, \Omega)

natural in XX; by the Yoneda lemma, we infer the presence of an internal intersection map

:Ω×ΩΩ\wedge: \Omega \times \Omega \to \Omega

making Ω\Omega an internal meet-semilattice.

More significantly, Ω\Omega is an internal Heyting algebra. More accurately, it’s a Heyting algebra provided it has joins; without joins it is a cartesian closed poset:


There is an internal implication operator

:Ω×ΩΩ\Rightarrow: \Omega \times \Omega \to \Omega

uniquely specified by the internal condition

wuviffwuv.w \wedge u \leq v \qquad iff \qquad w \leq u \Rightarrow v.
Proof (sketch)

Construct Ω×Ω\subseteq \hookrightarrow \Omega \times \Omega as the equalizer of the pair of maps

Ω×Ωπ 1Ω\Omega \times \Omega \stackrel{\overset{\pi_1}{\longrightarrow}}{\underset{\wedge}{\longrightarrow}} \Omega

and then define :Ω×ΩΩ\Rightarrow: \Omega \times \Omega \to \Omega to be the characteristic map of Ω×Ω\subseteq \hookrightarrow \Omega \times \Omega. Now if χ u,χ v\chi_u, \chi_v are two maps XΩX \to \Omega, one calculates that wXw \hookrightarrow X is contained in the subobject classified by χ uχ v\chi_u \Rightarrow \chi_v iff wu=wuvw \cap u = w \cap u \cap v, which is just a way of saying wuvw \cap u \leq v.


In every subobject poset Sub(X)Sub(X), meets distribute over any joins that exist.


Because UU \cap - is left adjoint to the external operator UU \Rightarrow - on Sub(X)Sub(X), it preserves any joins that happen to exist in Sub(X)Sub(X).

Normally these results are proved in the context of toposes, where we may say for example that Ω\Omega is an internal Boolean algebra if and only if the topos is Boolean. But as the proofs above indicate, we need only exploit the definition of subobject classifier making reference only to finite limit structure.

In a topos, the subobject classifier Ω\Omega is always injective, and, so is the power object Ω X\Omega^X for every object XX. In particular, every object XX embeds into an injective object by the singleton monomorphism XΩ XX\to\Omega^X: ‘A topos has enough injective objects!’. More generally, injective objects in a topos are percisely the ones that are retracts of some Ω X\Omega^X (Cf. Borceux 1994, p.315; Moerdijk-MacLane 1994, p.210).

Johnstone’s exercise

A curiosity from Johnstone’s Topos Theory, posed as an exercise, is that any monomorphism ΩΩ\Omega \to \Omega is an isomorphism and even an involution. Thus Ω\Omega is a Hopfian object?.

An online proof may be found here.

Categories without subobject classifiers

As the previous section indicates, having a subobject classifier is a very strong property of a category and “most” categories with finite limits don’t have one.

For example, there is an easy condition ensuring a category2 with a terminal object can’t have a subobject classifier: if there are no nonidentity morphisms out of the terminal object. This includes the following examples.

  • Any top bounded partial order.

  • In RingRing, the category of rings, there are no nonidentity morphisms out of the terminal object the zero ring.

Here’s another obstacle:

  • If an abelian category had a subobject classifier, every subobject of every object would have to be the kernel of its classifying map. In particular, the subobject 00 of every object AA would have to be the kernel of its classifying map, so that every object in this abelian category would embed into the subobject classifier Ω\Omega (including, say, all small products of Ω\Omega with itself) which in nontrivial cases would cause size issues.

But a real killer is the fact that all monos are regular, or its consequences of the category being balanced and uniqueness of epi-mono factorizations:

  • The categories Pos, Cat, Top are not balanced (consider the map from a discrete structure on a set to an indiscrete structure on the same set, induced by the identity function). The category CMon is not balanced (consider the inclusion \mathbb{N} \hookrightarrow \mathbb{Z} which is epic).

Even though all monos in Grp are regular, we can kill off GrpGrp by observing that if t:1Ωt: 1 \to \Omega were a subobject classifier, the proof of Proposition 3 indicates that every mono i:AXi: A \to X would have to be the kernel of χ i\chi_i. But not all monos in GrpGrp are kernels.

Perhaps an even more decisive killer is the observation that meets distribute over (arbitrary) joins in subobject orders. This eliminates many categories from consideration:

  • Lattices of subobjects in GrpGrp or AbAb are rarely distributive.

  • For any nontrivial category with biproducts, there are non-distributive subobject lattices. Take any object AA, so that we have three subobjects i 1:AAAi_1: A \to A \oplus A, i 2:AAAi_2: A \to A \oplus A, and Δ:AAA\Delta: A \to A \oplus A. Then i 1i 2=i_1 \vee i_2 = \top, whereas i 1Δ==i 2Δi_1 \wedge \Delta = \bot = i_2 \wedge \Delta. Under distributivity we have

    Δ=Δ=Δ(i 1i 2)=(Δi 1)(Δi 2)==\Delta = \Delta \wedge \top = \Delta \wedge (i_1 \vee i_2) = (\Delta \wedge i_1) \vee (\Delta \wedge i_2) = \bot \vee \bot = \bot

    but Δ=\Delta = \bot forces A=0A = 0. So the only such category that can have a subobject classifier is trivial.

Generalizations: object classifier

In higher topoi the the subobject classifiers are the universal fibrations:

in the (n+1)-topos nCatn Cat of n-categories the subobject classifier is the forgetful functor

ntrue:(n1)Cat *(n1)Cat n true : (n-1)Cat_* \to (n-1)Cat

from the nn-category of pointed (n1)(n-1)-categories to that of (n1)(n-1)-categories, which forgets the point.

This is described in more detail at generalized universal bundle. See also the discussion at stuff, structure, property.

In fact, using the notion of (-1)-category the subobject classifier in Set does fit precisely into this pattern:

the 2-element set 2\mathbf{2} may be regarded as the 0-category of (-1)-categories (of which there are two) and the one-element set ** is the 0-category of pointed (-1)-categories, of which there is one.

In the context of (∞,1)-topos theory subobject classifiers are discussed in section 6.1.6 of

Whereas for 1-toposes the subobject classifier is the key structural ingredient (besides the exactness properties), in higher topos theory this role is taken over by the object classifier, as pointed out in Lurie (2009).


  1. For M the class of strong monomorphisms, this is called a weak subobject classifier in Johnstone (2002, p.120).

  2. We mean a nontrivial category, obviously, where “trivial” here means every object is terminal.

Revised on October 17, 2016 05:34:46 by Matt Earnshaw (