Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently trying to understand this article by T. Noll on the topos of triads in music theory (also, this) However, I can't get past section 2.2 where Noll introduces the subobject classifier, most probably because I don't know much about topos theory.

I read the definition for topoi, but I can't get the intuition behind it so my question is: can anyone provide an example of a small, concrete, topos that I could play with to understand this concept ?

Thanks for your help...

Edit: I realized that "small topos" has a precise definition; in this case, I just meant "small" as "not so complicated"...

share|cite|improve this question
Dear Alex, Looking at your profile, I see that you're a chemist. But let me ask, just in case: do you know topology, up to the level of covering space theory? If so, there are good examples available that build on Hurkyl's. The idea of topos arose out topological ideas, and in particular the theory of sheaves, which can be thought of as a kind of generalization of covering spaces. If you don't know topology, that would be useful to know too, since it would rule out those examples. So let me also ask: do you know some group theory (up to say groups acting on sets)? (Based on your ... – Matt E Mar 4 '12 at 0:57
... profile, it looks like the answer might be yes, but I want to be sure.) If so, that opens up another set of examples. Regards, – Matt E Mar 4 '12 at 1:06
I strongly recommend reading "An Informal Introduction to Topos Theory" by Tom Leinster. It can be found on the arxiv, or online here: It contains many, many nice examples and builds the theory intuitively. – Matt Mar 4 '12 at 5:24
@Matt E : I was introduced to covering spaces via Kuga's book "Galois' Dream..." but this is as far as it gets, and I'm not very comfortable with it. I'm much more familiar with group theory and group actions since those appear a lot in music theory. By the way, I'm also very uncomfortable with the concept of sheaves.... – AlexPof Mar 4 '12 at 7:20
@Matt:Thank you, this looks like a nice article ! – AlexPof Mar 4 '12 at 7:22
up vote 7 down vote accepted

One way to think of a topos is as some kind of fancier category of sets.

One way to make sets fancier is to consider sheaves of sets on some topological space; this is mentioned in Zhen Lin's answer. One can think of a sheaf of sets as a set which varies and twists over the topological space, but it seems that this could be a bit painful for you to think about with the background you're coming from.

Another way to makes sets fancier is to put actions on them. So:

Let $G$ be a finite group, and consider the category of all finite $G$-sets, i.e. all finite sets equipped with an action of the group $G$. (Morphisms are maps between sets that are compatible with the $G$-action on source and target.) This is an example of a topos, which is pretty small in your non-technical sense.

The subobject classifier is the two element set $\Omega$, with trivial $G$-action, and with one of the two points distinguished. If $X$ is a $G$-set, and $Y$ a $G$-invariant subset, then we have the morphism $\chi_Y: X \to \Omega$ which maps all of $Y$ to the distinguished point in $\Omega$, and all of $X\setminus Y$ to the other point. This morphism "classifies" the subset $Y$. (More precisely, $Y$ is the preimage of the distinguished point of $\Omega$ under $\chi_Y$.)

If we take $G$ to be the trivial group, then we just recover the topos of finite sets.

Let's instead take $G$ to be the cyclic group of order two, say $G = \langle 1,\tau\rangle,$ with $\tau$ of order two. Then to give a finite $G$-set is just to give a finite set $X$ equipped with an involution (i.e. permutation of order two) $\tau$.

Now in addition to the two-element set $\Omega$ with trivial $G$-action, which (once you designate one of its points as being the distinguished one) is the subobject classifier, you could think about the two-element set $\Omega'$ equipped with the non-trivial involution, which switches the two points.

We have already seen that $Hom_G(X,\Omega)$ (I write $Hom_G$ for maps preserving the $G$-action) is equal to the collection of $G$-invariant subsets of $X$.

What about $Hom_G(X,\Omega')$? You could try to compute this (of course it will depend on the particular $G$-set $X$). It's not particularly exciting, but it might help you get a feeling for the difference between the subobject classifier and some other objects, such as $\Omega'$.

share|cite|improve this answer
Let's see if I got it right : if there is $U$ and $V \in X$ such that $\tau(U)=V$, then $Hom_G(X,\Omega')$ consists of all the functions which assign $U$ to anyone of the two points of $\Omega'$ while $V$ is mapped to the other one. If $W \in X$ is such that $\tau(W) \subset W$ then W is not mapped to anything. Is this correct ? – AlexPof Mar 11 '12 at 21:52
@AlexPof: Dear Alex, Yes, this is essentially correct. You probably meant to write $\tau(W) = W$ rather than $\tau(W) \subset W$ (since $W$ is an element of the set $X$ on which $G$ is acting). Also, since (by definition) a map has to be defined on every element of its domain, the correct conclusion to draw is that $Hom_G(X,\Omega')$ is empty if $X$ contains a fixed point (i.e. an element $W$ s.t. $\tau(W) = W$). (So $\Omega'$ is not completely uninteresting: it detects whether or not $X$ contains any fixed points.) If $X$ contains no fixed points, so it is a union of pairs ... – Matt E Mar 11 '12 at 23:33
$U$ and $V$ (in your notation), then a map to $\Omega'$ is given by assigning one point of $\Omega'$ to each such $U$, and the other point of $\Omega'$ to the corresponding $V$. Regards, – Matt E Mar 11 '12 at 23:33
Ah I'm beginning to understand now... So if G is a monoid instead of a group (as in Noll's article), then there is no invariant subset anymore and the classification in $true$,$false$ has to be refined ? – AlexPof Mar 12 '12 at 10:48

The simplest non-degenerate example is $\mathbf{FinSet}$: the category of finite sets. The subobject classifier is the two-element set.

Defining subobjects by the classifier is basically a categorification of the set-theoretic idea of defining subsets by relations ($f(x) = 1$ if $x$ is in the subset, $0$ otherwise).

Of course, $\mathbf{FinSet}$ is a particularly nice topos, so maybe this is missing some of the flavor. For example, the terminal object (the one-element set) only has two subobjects: itself, and the initial object (the empty set).

share|cite|improve this answer

If you want an easy concrete example of a topos, then you need not look any further than the category of all sets $\textbf{Set}$. Unfortunately, it is a somewhat special topos. More general toposes look like subcategories of functor categories $[\mathcal{C}^\textrm{op}, \textbf{Set}]$, where $\mathcal{C}$ is a small category. These are still reasonably concrete while having more generic behaviour: in general these toposes will not be well-pointed, will not be boolean, etc.

Most famously, $\textbf{Sh}(X)$, the category of set-valued sheaves on a topological space $X$, is a topos, and categories like this were the examples that the theory was originally built on. The subobject classifier of $\textbf{Sh}(X)$ is the frame of all open subsets of $X$: we think of the truth values of $\textbf{Sh}(X)$ as telling us where propositions are true, and the internal logic of $\textbf{Sh}(X)$ is a kind of ‘local’ logic.

The remainder of this answer is about small toposes in the technical sense.

Let $V$ be a model of Zermelo–Fraenkel set theory, and let $V_\alpha$ be the set of all sets in $V$ of rank less than $\alpha$. Then,

  1. $V_\omega$, the set of all hereditarily finite sets, is an elementary topos.

  2. $V_{\omega + \omega}$ is a well-pointed elementary topos with a natural numbers object; if $V_{\omega + \omega}$ satisfies the axiom of choice, then it is even a model of the Elementary Theory of the Category of Sets (ETCS).

  3. More generally, for every non-zero limit ordinal $\kappa$, $V_\kappa$ is a well-pointed elementary topos, and if $V_\kappa$ satisfies the axiom of choice, $V_\kappa$ is a model of ETCS.

Now, those are all very similar from the point of view of topos theory, and don't really show the flavour of the subject. For instance, all of those examples are boolean toposes, so their internal logic is classical. Moreover, these are all two-valued toposes, in the sense that their subobject classifier only has two elements.

One way to get a non-boolean topos is to take a finite poset $\mathcal{P}$, considered as a category, and look at the category of all functors $\mathcal{P}^\textrm{op} \to \textbf{FinSet}$. This is an elementary topos, by the usual arguments, and is in general not a boolean topos: the subobject classifier can be thought of as the set of all downward-closed subsets of $\mathcal{P}$. On the other hand, it is also a small topos! More generally, the category of all functors $\mathcal{C}^\textrm{op} \to \textbf{FinSet}$ is a small topos, for any finite category $\mathcal{C}$.

share|cite|improve this answer

Another nice example of a topos: the category of all permutations of finite sets. Arrows in this category are defined in the obvious way: if a:X->X and b:Y->Y are permutations, an arrow from a to b is an arrow of sets f:X -> Y such that fa = bf. The topos operations are inherited from FinSet.

This opens up the possibility of using the Mitchell-Benabou language to talk about permutations "as if they were sets". If you're interested in doing this sort of thing in software, you might want to look at Project Bewl, which attempts to express the M-B internal language of a topos as a DSL (domain specific language), so that you can do topos-theoretic calculations on the command line.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.