Although there are more things to talk about regarding neo-Riemannian theory and transformational theories of music, I’d like to talk today about something different. Some time ago, I stumbled across this paper :

- “The Topos of Triads”, T. Noll, which you can access here, and which has also been studied in the following paper :
- “Commuting groups and the topos of triads”, T. M. Fiore and T. Noll, MCM 2011 Proceedings of the Third international conference on Mathematics and computation in music, pp. 69-83

… and I couldn’t make any sense of what was the paper about ! In fact, I knew nothing about topos theory at that time, and it took me quite long before I could grasp how Noll used topos theory and its use for musical analysis.

What I intend to do here is to save you all that time, and try to expose the basics of topos theory in a very intuitive way, so that we can see what is Noll’s paper about. Of course, if you already know topos theory, you won’t have any problem understanding Noll’s theory. For those who don’t, we’ll have to introduce some mathematical concepts first. You’ll need basic category theory, up to functors (we’ll introduce natural transformations below). I have chosen to present them in a rather informal way, favoring intuition over mathematical rigor: mathematicians would probably have many remarks (which are welcome, so that I may improve these posts). If you want more maths, you should read this books :

- “Categories for the working mathematician”, S. MacLane, Springer
- “Sheaves in Geometry and Logic: A First Introduction to Topos Theory”, S. MacLane, I. Moerdijk, Springer

Finally, you may know that G. Mazzola has published a book entitled “The Topos of Music” (Birkenhauser). The book also references topos theory, but is rather complex and not essential for understanding Noll’s paper so I won’t make any reference to it here.

**Presheaves **

The first notion we need is that of a *presheaf*. Let be a small category, and another category. A -valued preasheaf on is a functor where is the opposite category of . We will be particularly interested in presheaves of sets, where is , the category of sets.

In fact, you already have seen such presheaves. Remember from this post that a GIS (Generalized Interval System) can be considered as functor from a group (viewed as a single-object category) to . However, we will consider here all kinds of categories , not only groups.

And we’ll give an example right now. Let’s imagine a world populated with dogs (D) and their masters (M). Now, our world has one specific rule: there can’t be any stray dogs, i.e. dogs without a master. In other words, there is a function which associates to each dog its master.

Thus, the category we will consider looks like this

It has one object M for the masters, one object D for the dogs, and one morphism which represents the relation “is the master of”. Be careful, this category is not the one where actual dogs and masters live: it is only a model for the relations between masters and dogs.

If we want to have an actual realization, we need a functor from to , like this

We get a set with only one dog, whose master belongs to the set , the relation of ownership being the function between sets . Beware that this function works in a reverse way (from dogs to masters), since a presheaf is a functor from the *opposite* category to .

But we could have other worlds, with more dogs and masters, like this

Notice that a master may have more than one dog, but a dog can’t belong to more than one master.

**Natural transformations and categories of presheaves of sets**

Let’s take our two previous presheaves, like this

Intuitively, we could say that the presheaf F can inject into the presheaf G. So, we would like to have a “function between presheaves”, much like we have ordinary functions in , like this

A “function between presheaves” will be called a *natural transformation*.

The situation is a bit more complicated for presheaves than it is for sets. In our case, we need to send dogs to dogs, and masters to masters, so instead of a single function between sets, we need for each object of the category a function between the sets and .

But remember also that the category adds structure to the sets of , so the natural transformation should preserve that structure when passing from F to G. In other words, if two elements are related by a function (which is an image of a morphism in ), their image should be related by the corresponding function in the presheaf G, like this

In mathematical terms, a natural transformation between presheaves F and G is a collection of functions for each object X of the category , such that given a morphism between objects X and Y, we have the following relation

Natural transformations have the nice properties that you can compose them: if you have a natural transformation between presheaves F and G, and a natural transformation between presheaves G and H, you get a natural transformation between F and H, by composing the individual functions . Moreover, you can check that this composition is associative, and that you have a special natural transformation which is the identity between F and F. Thus, you can form the category of sets-valued presheaves on the category , which we will write , which has

- All presheaves as objects
- Natural transformations between presheaves as morphisms between these objects

Such a category is called a functor category. In fact, you can form any functor category using all the functors between a small category and an arbitrary category , but we will restrict ourselves to the case because the corresponding functor categories have additional structure, as we will see shortly.

Just like bijections, injections and surjections in sets, we can have “bijective natural transformations” (morphisms which have an inverse), “injective natural transformations” (monomorphisms, i.e. left-cancellative morphisms) and “surjective natural transformations” (epimorphisms, i.e. right-cancellative morphisms)

**Topos**

So, what is a topos ? There are a number of definitions (including the difference between elementary topos and Grothendieck topos, which I won’t talk about here): the following one will be useful when looking at the particular example of .

A topos is a category which has

- All finite limits and colimits
- Exponentials
- A subobject classifier

The archetypal example of a topos is the category . In this category, the limit is given by the cartesian product, the colimit by the disjoint union and the exponential object of two sets and is the set of all functions from to . But what is a subobject classifier, and what is it in ?

We need to define first what a subobject is. In the small example below

the three-elements blue set is a subobject of the larger four-elements gray set. Note that there is a an injective function of the three-elements set into the four-elements set :

Of course, we could have another injective function from the three-elements set to the larger one, with the same image. But then, there would be a bijection such that . So a subobject is in fact an equivalence class of injections, where the equivalence relation between two injections and is given by the existence of a bijection such that .

Now for the subobject classifier. In , given a set and a subobject of that set, there exists a *characteristic function *which sends the elements of to 1, and the elements of to 0. The two-elements set is called the subobject classifier of . To be more formal, we need:

- The terminal element of , which is the single element set.
- The subobject classifier
- The function , whose image is the element .

The subobject should be mapped to , so we will send to via the unique morphism , which we will compose with , like this

The characteristic function is then the unique function such that the we obtain the following pullback diagram

and we see that it sends elements of the subobject to 1 and the rest to 0.

The discussion was all about , but the definition of the subobject classifier is more general. An object is a subobject classifier for a category if

- there exists a morphism (where is the terminal object of ) such that
- for each monomorphism , there exists a unique morphism such that the commutative diagramis a pullback diagram.

And now for the really cool thing about categories of presheaves:

*Given a small category , the functor category is a topos.*

The subobject classifier in such a category is the presheaf which sends each object to the set of *sieves *on that object. A sieve on an object is a set of morphisms whose codomain is which is invariant when composing on the left.

Let’s try to find the subobject classifier of our category of dogs and masters. Remember, this is the category

What are the sieves on ? Well, there is always , of course. And then, there is and that’s it. So is a two element set, which we will notate as , 1 corresponding to the sieve and 0 to the sieve .

And what about the sieves on ? Again, we have . Then we have , since it is invariant if we compose it on the left with . And then we have . So is a three element set, which we will notate as corresponding to the sieves I’ve just presented.

Therefore, the subobject classifier is the following presheaf

(Remember that in the functor category we’re working with, the objects are presheaves, therefore the subobject classifier is a presheaf as well.)

How does it classify things ? Let’s consider the following world , with five dogs and two masters

and let’s consider the subobject which consists of dog A and master M1, or in other words the following equivalence class of monomorphisms

(I’m dropping the drawing of the category, but you have to remember it’s there since we are working with presheaves and not just sets).

Now the question is: does the master M2 belong to ? The answer is no. Does the dog D belong to ? The answer is again no. Does the dog B belong to ? It’s not quite simple ! Of course, it does not belong directly to , but his master does. So we have an intermediate *truth value* for dog B, rather than just a binary answer. I’m sure you understand now the significance of 1/2 in . The whole picture for the pullback diagram will look like this

Each element of the sets in is assigned a *truth value* in depending on its relationship with the subobject .

Topos theory really generalize all the nice properties you have in . In a sense, it generalizes set theory to *sets modelled on a category * which provides additional structure. In the next post, we’ll introduce more properties of toposes, and we’ll turn to Noll’s paper to see their application in music.

Congratulations on making these concepts so very clear. I actually witnessed the conferences introducing the papers you mention and would have benefited from your ‘dogs and masters’ analogies.