Suppose you were an mid-20th-century algebraic topologist familiar with abstract simplicial complexes. What might lead you to invent simplicial sets? The historical answer, at least according to Eilenberg and Zilber [1950, Semi-simplicial complexes and singular homology], is that there are many important examples of such things: for instance, the “set” of singular simplices of a topological space is an example of such a thing. However, one could also motivate simplicial sets using more combinatorial considerations.

Recall the problem of triangulating the product of two simplicial complexes, say *K* and *L*. We can do this as follows:

- Choose a linear ordering of the vertices of
*K* and *L*.
- The vertices of
*K* ⊗ *L* are pairs (*x*, *y*), where *x* is a vertex of *K* and *y* is a vertex of *L*.
- The
*n*-simplices of *K* ⊗ *L* are given by *n* + 1 distinct vertices, say { (*x*_{0}, *y*_{0}), …, (*x*_{n}, *y*_{n}) }, such that *x*_{0}, …, *x*_{n} and *y*_{0}, …, *y*_{n} are increasing sequences (but not necessarily all distinct), { *x*_{0}, …, *x*_{n} } is a simplex of *K* (possibly of dimension < *n*) and { *y*_{0}, …, *y*_{n} } is a simplex of *L* (possibly of dimension < *n*).

Unfortunately, *K* ⊗ *L* need not have the universal property of a cartesian product of *K* and *L* unless we require simplicial maps to respect the linear ordering of the vertices at least “locally”. More precisely, we have to restrict attention to those simplicial maps that preserve the linear ordering of the vertices of each simplex of *K* and *L*; so if a pair of vertices do not appear in the same simplex, then the map need not preserve their relative ordering. In fact, we do not need to linearly order all the vertices in the first place – we only need the ordering “locally” – that is, a linear ordering of the vertices of each simplex, which is required to be compatible with the linear ordering of the vertices of its faces. Let us say a **rigid simplicial complex** is a simplicial complex equipped with such a “local” linear ordering, and a **morphism** of rigid simplicial complexes is a simplicial map that is “locally” order-preserving. (Note that there is a subtle difference between rigid simplicial complexes and ordered simplicial complexes: non-isomorphic ordered simplicial complexes can give rise to the same rigid simplicial complex. In this light, perhaps it would be better to say ‘semi-rigid’ instead of ‘rigid’.)

Clearly, there is a unique rigidification of the standard simplices up to isomorphism: all we have to do is choose a linear ordering of the vertices. It is a simple matter to describe the *n*-simplices of a rigid simplicial complex in terms of morphisms: there is a bijection between the set of *n*-simplices of *K* and the set of morphisms Δ^{n} → *K* that are injective on vertices, and it is natural so long as we restrict our attention to morphisms that are injective on vertices. Keeping in mind our construction of *K* ⊗ *L*, this awkwardness suggests that the right thing to consider is the set of possibly-degenerate *n*-simplices of *K*, which we will identify with the set of *all* morphisms Δ^{n} → *K*. This is what the ‘complete’ in ‘complete semi-simplicial complex’ refers to.

It is at this point that one realises that one could reorganise the data of a rigid simplicial complex as a (many-sorted) algebraic structure such that *K* ⊗ *L* is literally the cartesian product of *K* and *L*. Indeed, a morphism of rigid simplicial complexes is completely determined by its action on the sets of possibly-degenerate simplices, and in fact they are precisely the ones that respect the face/degeneracy relations. The fact that the vertices of each simplex are linearly ordered allows us to linearly order the faces of each simplex; thus one is led to the idea of face and degeneracy operators, and thence to the famous simplicial identities. This in turn enables us to identify morphisms of rigid simplicial complexes with “homomorphisms”, i.e. maps that commute with these operators.

In modern terms, what we have discovered here is a fully faithful embedding of the category of rigid simplicial complexes into the category of simplicial sets. There is one remaining question: how do we know whether a simplicial set is (isomorphic to) one that comes from a rigid simplicial complex? The answer turns out to be straightforward enough: the rigid simplicial complexes correspond to those simplicial sets whose simplices are “vertex-determined”, i.e. those *X* such that two (possibly-degenerate) *n*-simplices of *X* are equal if and only if their faces are equal. This condition (for a fixed *n*) is an example of what logicians call a Horn clause. So in some sense, the theory of simplicial sets is the purely equational fragment of the theory of rigid simplicial complexes, and this is one reason why the category of simplicial sets has better properties than the category of rigid simplicial complexes. The *omission* of the “vertex-determined” condition is what the ‘semi-’ in ‘(complete) semi-simplicial complex’ refers to.