I wanted to do category theory, not geometry, so the idea of studying simplexes didn’t seem very attractive at first. But as I was getting deeper into it, a very different picture emerged. Granted, the study of simplexes originated in geometry, but then category theorists took interest in it and turned it into something completely different. The idea is that simplexes define a very peculiar scheme for composing things. The way you compose lower dimensional simplexes in order to build higher dimensional simplexes forms a pattern that shows up in totally unrelated areas of mathematics… and programming. Recently I had a discussion with Edward Kmett in which he hinted at the simplicial structure of cumulative edits in a source file.
Geometric picture
Let’s start with a simple idea, and see what we can do with it. The idea is that of triangulation, and it almost goes back to the beginning of the Agricultural Era. Somebody smart noticed long time ago that we can measure plots of land by subdividing them into triangles.
Why triangles and not, say, rectangles or quadrilaterals? Well, to begin with, a quadrilateral can be always divided into triangles, so triangles are more fundamental as units of composition in 2d. But, more importantly, triangles also work when you embed them in higher dimensions, and quadrilaterals don’t. You can take any three points and there is a unique flat triangle that they span (it may be degenerate, if the points are collinear). But four points will, in general, span a warped quadrilateral. Mind you, rectangles work great on flat screens, and we use them all the time for selecting things with the mouse. But on a curved or bumpy surface, triangles are the only option.
Surveyors have covered the whole Earth, mountains and all, with triangles. In computer games, we build complex models, including human faces or dolphins, using wireframes. Wireframes are just systems of triangles that share some of the vertices and edges. So triangles can be used to approximate complex 2d surfaces in 3d.
More dimensions
How can we generalize this process? First of all, we could use triangles in spaces that have more than 3 dimensions. This way we could, for instance, build a Klein bottle in 4d without it intersecting itself.
We can also consider replacing triangles with higherdimensional objects. For instance, we could approximate 3d volumes by filling them with cubes. This technique is used in computer graphics, where we often organize lots of cubes in data structures called octrees. But just like squares or quadrilaterals don’t work very well on nonflat surfaces, cubes cannot be used in curved spaces. The natural generalization of a triangle to something that can fill a volume without any warping is a tetrahedron. Any four points in space span a tetrahedron.
We can go on generalizing this construction to higher and higher dimensions. To form an ndimensional simplex we can pick points. We can draw a segment between any two points, a triangle between any three points, a tetrahedron between any four points, and so on. It’s thus natural to define a 1dimensional simplex to be a segment, and a 0dimensional simplex to be a point.
Simplexes (or simplices, as they are sometimes called) have very regular recursive structure. An ndimensional simplex has faces, which are all dimensional simplexes. A tetrahedron has four triangular faces, a triangle has three sides (onedimensional simplexes), and a segment has two endpoints. (A point should have one face–and it does, in the “augmented” theory). Every higherdimensional simplex can be decomposed into lowerdimensional simplexes, and the process can be repeated until we get down to individual vertexes. This constitutes a very interesting composition scheme that will come up over and over again in unexpected places.
Notice that you can always construct a face of a simplex by deleting one point. It’s the point opposite to the face in question. This is why there are as many faces as there are points in a simplex.
Look Ma! No coordinates!
So far we’ve been secretly thinking of points as elements of some ndimensional linear space, presumably . Time to make another leap of abstraction. Let’s abandon coordinate systems. Can we still define simplexes and, if so, how would we use them?
Consider a wireframe built from triangles. It defines a particular shape. We can deform this shape any way we want but, as long as we don’t break connections or fuse points, we cannot change its topology. A wireframe corresponding to a torus can never be deformed into a wireframe corresponding to a sphere.
The information about topology is encoded in connections. The connections don’t depend on coordinates. Two points are either connected or not. Two triangles either share a side or they don’t. Two tetrahedrons either share a triangle or they don’t. So if we can define simplexes without resorting to coordinates, we’ll have a new language to talk about topology.
But what becomes of a point if we discard its coordinates? It becomes an element of a set. An arrangement of simplexes can be built from a set of points or 0simplexes, together with a set of 1simplexes, a set of 2simplexes, and so on. Imagine that you bought a piece of furniture from Ikea. There is a bag of screws (0simplexes), a box of sticks (1simplexes), a crate of triangular planks (2simplexes), and so on. All parts are freely stretchable (we don’t care about sizes).
You have no idea what the piece of furniture will look like unless you have an instruction booklet. The booklet tells you how to arrange things: which sticks form the edges of which triangles, etc. In general, you want to know which lowerorder simplexes are the “faces” of higherorder simplexes. This can be determined by defining functions between the corresponding sets, which we’ll call face maps.
For instance, there should be two function from the set of segments to the set of points; one assigning the beginning, and the other the end, to each segment. There should be three functions from the set of triangles to the set of segments, and so on. If the same point is the end of one segment and the beginning of another, the two segments are connected. A segment may be shared between multiple triangles, a triangle may be shared between tetrahedrons, and so on.
You can compose these functions–for instance, to select a vertex of a triangle, or a side of a tetrahedron. Composable functions suggest a category, in this case a subcategory of Set. Selecting a subcategory suggests a functor from some other, simpler, category. What would that category be?
The Simplicial category
The objects of this simpler category, let’s call it the simplicial category , would be mapped by our functor to corresponding sets of simplexes in Set. So, in , we need one object corresponding to the set of points, let’s call it ; another for segments, ; another for triangles, ; and so on. In other words, we need one object called per one set of ndimensional simplexes.
What really determines the structure of this category is its morphisms. In particular, we need morphisms that would be mapped, under our functor, to the functions that define faces of our simplexes–the face maps. This means, in particular, that for every we need distinct functions from the image of to the image of . These functions are themselves images of morphisms that go between and in ; we do, however, have a choice of the direction of these morphisms. If we choose our functor to be contravariant, the face maps from the image of to the image of will be images of morphisms going from to (the opposite direction). This contravariant functor from to Set (such functors are called presheafe) is called the simplicial set.
What’s attractive about this idea is that there is a category that has exactly the right types of morphisms. It’s a category whose objects are ordinals, or ordered sets of numbers, and morphisms are orderpreserving functions. Object is the oneelement set , is the set , is , and so on. Morphisms are functions that preserve order, that is, if then . Notice that the inequality is nonstrict. This will become important in the definition of degeneracy maps.
The description of simplicial sets using a functor follows a very common pattern in category theory. The simpler category defines the primitives and the grammar for combining them. The target category (often the category of sets) provides models for the theory in question. The same trick is used, for instance, in defining abstract algebras in Lawvere theories. There, too, the syntactic category consists of a tower of objects with a very regular set of morphisms, and the models are contravariant Setvalued functors.
Because simplicial sets are functors, they form a functor category, with natural transformations as morphisms. A natural transformation between two simplicial sets is a family of functions that map vertices to vertices, edges to edges, triangles to triangles, and so on. In other words, it embeds one simplicial set in another.
Face maps
We will obtain face maps as images of injective morphisms between objects of . Consider, for instance, an injection from to . Such a morphism takes the set and maps it to . In doing so, it must skip one of the numbers in the second set, preserving the order of the other two. There are exactly three such morphisms, skipping either , , or .
And, indeed, they correspond to three face maps. If you think of the three numbers as numbering the vertices of a triangle, the three face maps remove the skipped vertex from the triangle leaving the opposing side free. The functor is contravariant, so it reverses the direction of morphisms.
The same procedure works for higher order simplexes. An injection from to maps to by skipping some between and .
The corresponding face map is called , or simply , if is obvious from the context.
Such face maps automatically satisfy the obvious identities for any :
The change from to on the right compensates for the fact that, after removing the th number, the remaining indexes are shifted down.
These injections generate, through composition, all the morphisms that strictly preserve the ordering (we also need identity maps to form a category). But, as I mentioned before, we are also interested in those maps that are nonstrict in the preservation of ordering (that is, they can map two consecutive numbers into one). These generate the so called degeneracy maps. Before we get to definitions, let me provide some motivation.
Homotopy
One of the important application of simplexes is in homotopy. You don’t need to study algebraic topology to get a feel of what homotopy is. Simply said, homotopy deals with shrinking and holes. For instance, you can always shrink a segment to a point. The intuition is pretty obvious. You have a segment at time zero, and a point at time one, and you can create a continuous “movie” in between. Notice that a segment is a 1simplex, whereas a point is a 0simplex. Shrinking therefore provides a bridge between differentdimensional simplexes.
Similarly, you can shrink a triangle to a segment–in particular the segment that is one of its sides.
You can also shrink a triangle to a point by pasting together two shrinking movies–first shrinking the triangle to a segment, and then the segment to a point. So shrinking is composable.
But not all higherdimensional shapes can be shrunk to all lowerdimensional shapes. For instance, an annulus (a.k.a., a ring) cannot be shrunk to a segment–this would require tearing it. It can, however, be shrunk to a circular loop (or two segments connected end to end to form a loop). That’s because both, the annulus and the circle, have a hole. So continuous shrinking can be used to classify shapes according to how many holes they have.
We have a problem, though: You can’t describe continuous transformations without using coordinates. But we can do the next best thing: We can define degenerate simplexes to bridge the gap between dimensions. For instance, we can build a segment, which uses the same vertex twice. Or a collapsed triangle, which uses the same side twice (its third side is a degenerate segment).
Degeneracy maps
We model operations on simplexes, such as face maps, through morphisms from the category opposite to . The creation of degenerate simplexes will therefore corresponds to mappings from to . They obviously cannot be injective, but we may chose them to be surjective. For instance, the creation of a degenerate segment from a point corresponds to the (opposite) mapping of to , which collapses the two numbers to one.
We can construct a degenerate triangle from a segment in two ways. These correspond to the two surjections from to .
The first one called maps both and to and to . Notice that, as required, it preserves the order, albeit weakly. The second, maps to but collapses and to .
In general, maps to by collapsing and to .
Our contravariant functor maps these orderpreserving surjections to functions on sets. The resulting functions are called degeneracy maps: each mapped to the corresponding . As with face maps, we usually omit the first index, as it’s either arbitrary or easily deducible from the context.
There is an obvious identity for the composition of degeneracy maps:
for .
The interesting identities relate degeneracy maps to face maps. For instance, when or , we have:
(that’s the identity morphism). Geometrically speaking, imagine creating a degenerate triangle from a segment, for instance by using . The first side of this triangle, which is obtained by applying , is the original segment. The second side, obtained by , is the same segment again.
The third side is degenerate: it can be obtained by applying to the vertex obtained by .
In general, for :
Similarly:
for .
All the face and degeneracymap identities are relevant because, given a family of sets and functions that satisfy them, we can reproduce the simplicial set (contravariant functor from to Set) that generates them. This shows the equivalence of the geometric picture that deals with triangles, segments, faces, etc., with the combinatorial picture that deals with rearrangements of ordered sequences of numbers.
Monoidal structure
A triangle can be constructed by adjoining a point to a segment. Add one more point and you get a tetrahedron. This process of adding points can be extended to adding together arbitrary simplexes. Indeed, there is a binary operator in that combines two ordered sequences by stacking one after another.
This operation can be lifted to morphisms, making it a bifunctor. It is associative, so one might ask the question whether it can be used as a tensor product to make a monoidal category. The only thing missing is the unit object.
The lowest dimensional simplex in is , which represents a point, so it cannot be a unit with respect to our tensor product. Instead we are obliged to add a new object, which is called , and is represented by an empty set. (Incidentally, this is the object that may serve as “the face” of a point.)
With the new object , we get the category , which is called the augmented simplicial category. Since the unit and associativity laws are satisfied “on the nose” (as opposed to “up to isomorphism”), is a strict monoidal category.
Note: Some authors prefer to name the objects of starting from zero, rather than minus one. They rename to , to , etc. This convention makes even more sense if you consider that is the initial object and the terminal object in .
Monoidal categories are a fertile breeding ground for monoids. Indeed, the object in is a monoid. It is equipped with two morphisms that act like unit and multiplication. It has an incoming morphism from the monoidal unit –the morphism that’s the precursor of the face map that assigns the empty set to every point. This morphism can be used as the unit of our monoid. It also has an incoming morphism from (which happens to be the tensorial square of ). It’s the precursor of the degeneracy map that creates a segment from a single point. This morphism is the multiplication of our monoid. Unit and associativity laws follow from the standard identities between morphisms in .
It turns out that this monoid in is the mother of all monoids in strict monoidal categories. It can be shown that, for any monoid in any strict monoidal category , there is a unique strict monoidal functor from to that maps the monoid to the monoid . The category has exactly the right structure, and nothing more, to serve as the pattern for any monoid we can come up within a (strict) monoidal category. In particular, since a monad is just a monoid in the (strictly monoidal) category of endofunctors, the augmented simplicial category is behind every monad as well.
One more thing
Incidentally, since is a monoidal category, (contravariant) functors from it to Set are automatically equipped with monoidal structure via Day convolution. The result of Day convolution is a join of simplicial sets. It’s a generalized cone: two simplicial sets together with all possible connections between them. In particular, if one of the sets is just a single point, the result of the join is an actual cone (or a pyramid).
Different shapes
If we are willing to let go of geometric interpretations, we can replace the target category of sets with an arbitrary category. Instead of having a set of simplexes, we’ll end up with an object of simplexes. Simplicial sets become simplicial objects.
Alternatively, we can generalize the source category. As I mentioned before, simplexes are a good choice of primitives because of their geometrical properties–they don’t warp. But if we don’t care about embedding these simplexes in , we can replace them with cubes of varying dimensions (a one dimensional cube is a segment, a two dimensional cube is a square, and so on). Functors from the category of ncubes to Set are called cubical sets. An even further generalization replaces simplexes with shapeless globes producing globular sets.
All these generalizations become important tools in studying higher category theory. In an ncategory, we naturally encounter various shapes, as reflected in the naming convention: objects are called 0cells; morphisms, 1cells; morphisms between morphisms, 2cells, and so on. These “cells” are often visualized as ndimensional shapes. If a 1cell is an arrow, a 2cell is a (directed) surface spanning two arrows; a 3cell, a volume between two surfaces; e.t.c. In this way, the shapeless homset that connects two objects in a regular category turns into a topologically rich blob in an ncategory.
This is even more pronounced in infinity groupoids, which became popularized by homotopy type theory, where we have an infinite tower of bidirectional nmorphisms. The presence or the absence of higher order morphisms between any two morphisms can be visualized as the existence of holes that prevent the morphing of one cell into another. This kind of morphing can be described by homotopies which, in turn, can be described using simplicial, cubical, globular, or even more exotic sets.
Conclusion
I realize that this post might seem a little rambling. I have two excuses: One is that, when I started looking at simplexes, I had no idea where I would end up. One thing led to another and I was totally fascinated by the journey. The other is the realization how everything is related to everything else in mathematics. You start with simple triangles, you compose and decompose them, you see some structure emerging. Suddenly, the same compositional structure pops up in totally unrelated areas. You see it in algebraic topology, in a monoid in a monoidal category, or in a generalization of a homset in an ncategory. Why is it so? It seems like there aren’t that many ways of composing things together, and we are forced to keep reusing them over and over again. We can glue them, nail them, or solder them. The way simplicial category is put together provides a template for one of the universal patterns of composition.
Bibliography

 John Baez, A Quick Tour of Basic Concepts in Simplicial Homotopy Theory
 Greg Friedman, An elementary illustrated introduction to simplicial sets.
 N J Wildberger, Algebraic Topology. An excellent series of videos.
Acknowledgments
I’m grateful to Edward Kmett and Derek Elkins for reviewing the draft and for providing helpful suggestions.