Topos Theory (Part 7)
Persiflage 2020-02-18
I’m almost done explaining why any presheaf category is an elementary topos, meaning that
• it has finite colimits; • it has finite limits; • it’s cartesian closed. • it has a subboject classifier.
Last time I explained why such categories are cartesian closed; now let’s talk about the subobject classifier!
Subobject classifiers
In the category of sets, 0-element and 1-element sets play special roles. The 0-element set is the initial object, and any 1-element set is a terminal object. But 2-element sets are also special! They let us talk about ‘truth values’.
We can take any such set, call it 2, and call its elements ‘true’ and ‘false’. Then subsets of any set correspond in a one-to-one way with functions
by associating to any subset the function taking the value ‘true’ on
and ‘false’ elsewhere: its characteristic function.
The idea of a subobject classifier is simply to copy this idea in other categories. A subobject classifier, which we’ll call will serve as an ‘object of truth values’ in the category at hand. To make this precise, we’ll demand that subobjects of any object
correspond bijectively to morphisms
That’s the idea. But to make the idea useful we need to say how subobjects of correspond to morphisms
And of course before that we’ll need to say exactly what a subobject is!
In we can pick out a subset of
using a monomorphism
where I use the funny arrow to denote a monomorphism (affectionately known as a ‘mono’). The idea is that the image of
is the subset of
we care about. But two different monos can have the same image, so we have to be careful!
Suppose we have two different monos
and
in When do they have the same image? The answer is: precisely when there’s an isomorphism
such that
Puzzle. Prove this.
So, more generally, in any category, we shall say that two monos and
are isomorphic iff there’s an isomorphism
such that
Definition. A subobject of an object in a category
is an isomorphism class of monos into
We will eventually study subobjects to see how much they behave like subsets—there’s a lot to say about that! But first let’s see what a subobject classifier is.
Again we return to the category to see how this should work. We need to know how subobjects of
arise from functions
For this we need to know which elements of
get mapped by
to ‘true’, so we need to specify which element of the set
counts as ‘true’. We do this using a function
which of course is a mono. Then, given any function
we can take the pullback of along
and get a mono
Please see diagram (2) in Section I.3 of Mac Lane and Moerdijk to see this pullback in all its glory.
The usual description of pullbacks in assures us that
and the map is the obvious inclusion.
We can copy this procedure in any category with pullbacks, leading to the definition we seek:
Definition. Let be a category with pullbacks. A subobject classifier is an object
equipped with a mono
such that for any object there is a bijection between morphisms
and subobjects of given as follows: for any such morphism
, we pull back
along
obtaining a mono
and then take the subobject of corresponding to this.
Here we are using a fact:
Puzzle. Show that the pullback of any mono is a mono.
Thus, is automatically a mono, because we are assuming
is.
Subobjects in presheaf categories
Let’s see what subobjects and subobject classifiers look like in presheaf categories. So now let be any category and let
be the category of presheaves on
To get started: what are monos in like? Remember from Part 5 pullbacks are computed pointwise in presheaf categories. Furthermore, monos can be defined in terms of pullbacks:
Puzzle. Show that a morphism is a mono iff its pullback along itself is the identity
This implies that determining whether a morphism in is a mono must also be a ‘pointwise’ matter: that is, one that you can check by looking at one object
at a time. But you can prove this directly:
Puzzle. Let be a morphism between presheaves
that is, a natural transformation between functors
Show that
is a mono iff for each
is a mono in that is, a one-to-one function.
Thus, people say a morphism of presheaves makes
into a subpresheaf of
when each function
is one-to-one, so
corresponds to a subset of
It’s good to look at this in examples, like the case of graphs, where we get the concept of ‘subgraph’: one graph included in another.
Of course, we should remember that a subobject of really an equivalence class of monos. Two different monos
and
give the same subobject of
if there’s an isomorphism between
and
that makes the obvious triangle commute. But sometimes people slack off and say
is a subobject of
if it’s equipped with a mono
I was coming close to doing that in the last paragraph.
Subobject classifiers in presheaf categories
Now we’re ready to understand the subobject classifier in a presheaf category. I’ll just tell you what it is. The subobject classifier in the presheaf category assigns to each object
the set of ‘sieves’ on
So what’s a sieve?
Definition. Given a category , a sieve on an object
is a collection of morphisms to
such that if
is in the sieve and
is any morphism, then
is in the sieve.
In other words, a sieve is a collection of morphisms with a fixed target that’s closed under precomposition. The name ‘sieve’ should remind you that if a piece of grain can get through a sieve, any smaller piece of grain can also get through. You can think of as ‘smaller’ than
in some sense.
Here’s a slick way to think about sieves. Remember that the Yoneda embedding
sends any object to a presheaf
called a representable presheaf.
Here’s the cool fact: a sieve on is just the same as a subobject of
For each object
it gives a subset of
and for each morphism
it gives a map from
to
namely the map sending each
to
The subobject classifier in
is a beautiful thing: it assigns to each object the set of all sieves on that object!
That is, for each object the set
is the set of all sieves on
But we also need to say what
does to morphisms. Given a morphism
the map
sends sieves on to sieves on
as follows. For any sieve
on
we say a morphism is in
if its composite with
is in
We also need to describe
A terminal presheaf sends each object of
to a one-element set, so
must pick out an element of
for each object
in a natural way (it’s a natural transformation.)
In other words, must choose a sieve on
for each
in a natural way. The naturality condition here says that if
a morphism is in the chosen sieve on
iff its composite with
is in the chosen sieve on
How does do this wonderful thing? Simple: for each object
it chooses the sieve containing all morphisms to
Then the naturality condition holds trivially.
Of course, we have to check that
really is a subobject classifier for Only this will let us really understand what we’ve done here.
I’ll talk about this more next time, perhaps focusing on examples to build up intuition. For now I recommend that you read Section I.4 of Mac Lane and Moerdijk’s book for a general proof—and also a look at some examples!