Homotopy theory

homotopy theory, (∞,1)-category theory, homotopy type theory

flavors: stable, equivariant, rational, p-adic, proper, geometric, cohesive, directed

models: topological, simplicial, localic, …

see also algebraic topology



Paths and cylinders

Homotopy groups

Basic facts


Higher category theory

higher category theory

Basic concepts

Basic theorems





Universal constructions

Extra properties and structure

1-categorical presentations



Orientals are “oriented simplices”: the nn-th oriental is the simplicial nn-simplex turned into a globular simplex, hence equipped with source and target relations, assigning to each kk-face a set of (k1)(k-1)-faces called its source and a set of (k1)(k-1)-faces called its target, subject to some natural axioms. Thus an oriental is a translation from simplicial to globular geometric shapes for higher structures. (For more discussion of this point see also at Kan complex the section As models for ∞-groupoids.)

Each oriental freely generates (see below) a structure of a strict omega-category O(Δ n)O(\Delta^n), such that kk-morphisms in O(Δ n)O(\Delta^n) are pasting diagrams of kk-faces in Δ n\Delta^n.

One of the axioms is a globularity axiom, which says that the source of a source (that is, the union of sources of all (k1)(k-1)-faces in the source of a kk-face) equals the source of the target, and similarly that the target of a source equals the target of the target. Thus, orientals mediate between the simplicial and the globular world of infinity-categories.

The first few orientals look as follows:

O(Δ 0)= {0} O(Δ 1)= {01} O(Δ 2)= { 1 0 2 } O(Δ 3)= { 1 0 2 3 } O(Δ 4)= { 2 1 3 0 4 } \array{\arrayopts{\rowalign{center}} O(\Delta^0) = & \{ 0\} \\ O(\Delta^1) = & \left\{ 0 \to 1\right\} \\ O(\Delta^2) = & \left\{ \array{\begin{svg} <svg xmlns="" width="6em" height="4em" viewBox="0 0 60 40"> <defs> <marker id="svg295arrowhead" viewBox="0 0 10 10" refX="0" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="5" orient="auto"> <path d="M 0 0 L 10 5 L 0 10 z"/> </marker> <marker id="svg296arrowhead" viewBox="0 0 10 10" refX="0" refY="5" markerUnits="strokeWidth" markerWidth="4" markerHeight="2.5" orient="auto"> <path d="M 0 0 L 10 5 L 0 10 z"/> </marker> </defs> <g font-size="10"> <foreignObject x="25" y="-2" width="12" height="14"><math xmlns="" display="inline"><mi>1</mi></math></foreignObject> <foreignObject x="0" y="27" width="12" height="14"><math xmlns="" display="inline"><mi>0</mi></math></foreignObject> <foreignObject x="50" y="27" width="12" height="14"><math xmlns="" display="inline"><mi>2</mi></math></foreignObject> </g> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M10,30 23, 15"/> <path d="M35,12 48, 27"/> <path d="M15,37 45, 37"/> </g> <g> <path stroke-width="3" d="M30,15 30,27" marker-end="url(#svg296arrowhead)"/> <path stroke="#FFF" d="M30,15 30,27"/> </g> </g> </svg> \end{svg}} \right\}\\ O(\Delta^3) = & \left\{ \array{\begin{svg} <svg xmlns="" width="13em" height="5em" viewBox="0 0 130 50"> <defs> <g id="myRect256"> <g font-size="10"> <foreignObject x="0" y="-3" width="12" height="14"><math xmlns="" display="inline"><mi>1</mi></math></foreignObject> <foreignObject x="0" y="37" width="12" height="14"><math xmlns="" display="inline"><mi>0</mi></math></foreignObject> <foreignObject x="40" y="-3" width="12" height="14"><math xmlns="" display="inline"><mi>2</mi></math></foreignObject> <foreignObject x="40" y="37" width="12" height="14"><math xmlns="" display="inline"><mi>3</mi></math></foreignObject> </g> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M10,7 37, 7"/> <path d="M6,42 6, 17"/> <path d="M10,47 37, 47"/> <path d="M46,12 46, 37"/> </g> </g> </g> </defs> <use xmlns:xlink="" xlink:href="#myRect256" x="0" y="0"/> <g fill="none" stroke="#000"> <path d="M11,43 38, 15" marker-end="url(#svg295arrowhead)"/> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M12,12 20,20"/> <path d="M40,18 27,40"/> </g> <g stroke="#FFF"> <path d="M12,12 20,20"/> <path d="M40,18 27,40"/> </g> </g> <g fill="none" stroke="#000"> <path stroke-width="5" d="M55,25 72,25"/> <path stroke-width="3" stroke="#FFF" d="M55,25 72,25" marker-end="url(#svg296arrowhead)"/> <path stroke-width="1" d="M55,25 72,25"/> </g> <use xmlns:xlink="" xlink:href="#myRect256" x="80" y="0"/> <g fill="none" stroke="#000"> <path d="M92,12 118, 39" marker-end="url(#svg295arrowhead)"/> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M92,20 100,38"/> <path d="M120,12 113,19"/> </g> <g stroke="#FFF"> <path d="M92,20 100,38"/> <path d="M120,12 113,19"/> </g> </g> </g> </svg> \end{svg}}\right\}\\ O(\Delta^4) = & \left\{ \array{\begin{svg} <svg xmlns="" width="28em" height="23em" viewBox="-35 0 245 230"> <defs> <g id="myPent256"> <g font-size="10"> <foreignObject x="25" y="-2" width="12" height="14"><math xmlns="" display="inline"><mi>2</mi></math></foreignObject> <foreignObject x="0" y="27" width="12" height="14"><math xmlns="" display="inline"><mi>1</mi></math></foreignObject> <foreignObject x="50" y="27" width="12" height="14"><math xmlns="" display="inline"><mi>3</mi></math></foreignObject> <foreignObject x="13" y="57" width="12" height="14"><math xmlns="" display="inline"><mi>0</mi></math></foreignObject> <foreignObject x="38" y="57" width="12" height="14"><math xmlns="" display="inline"><mi>4</mi></math></foreignObject> </g> <g fill="none" stroke="#000" marker-end="url(#svg295arrowhead)"> <path d="M8,32 25,13"/> <path d="M35,10 52,28"/> <path d="M54,41 48,57"/> <path d="M24,67 36,67"/> <path d="M16,62 8,45"/> </g> </g> </defs> <use xmlns:xlink="" xlink:href="#myPent256" x="0" y="0"/> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M10,36 45,36"/> <path d="M22,60 47,41"/> </g> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M31,12 31,26"/> <path d="M12,38 25,48"/> <path d="M45,48 35,60"/> </g> <g stroke="#FFF"> <path d="M31,12 31,26"/> <path d="M12,38 25,48"/> <path d="M45,48 35,60"/> </g> </g> </g> <use xmlns:xlink="" xlink:href="#myPent256" x="110" y="0"/> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M120,36 155,36"/> <path d="M122,41 147,60"/> </g> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M141,12 141,26"/> <path d="M125,47 135,58"/> <path d="M162,38 145,48"/> </g> <g stroke="#FFF"> <path d="M141,12 141,26"/> <path d="M125,47 135,58"/> <path d="M162,38 145,48"/> </g> </g> </g> <use xmlns:xlink="" xlink:href="#myPent256" x="160" y="80"/> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M172,119 195,140"/> <path d="M194,98 201,138"/> </g> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M175,127 185,138"/> <path d="M212,116 206,116"/> <path d="M189,98 184,121"/> </g> <g stroke="#FFF"> <path d="M175,127 185,138"/> <path d="M212,116 206,116"/> <path d="M189,98 184,121"/> </g> </g> </g> <use xmlns:xlink="" xlink:href="#myPent256" x="55" y="160"/> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M74,220 83,180"/> <path d="M87,178 96,218"/> </g> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M86,187 86,216"/> <path d="M63,196 71,196"/> <path d="M107,196 99,196"/> </g> <g stroke="#FFF"> <path d="M86,187 86,216"/> <path d="M63,196 71,196"/> <path d="M107,196 99,196"/> </g> </g> </g> <use xmlns:xlink="" xlink:href="#myPent256" x="-50" y="80"/> <g fill="none" stroke="#000"> <g marker-end="url(#svg295arrowhead)"> <path d="M-31,140 -22,100"/> <path d="M-29,143 -3,120"/> </g> <g> <g stroke-width="3" marker-end="url(#svg296arrowhead)"> <path d="M-40,116 -35,116"/> <path d="M-17,97 -17,123"/> <path d="M-5,128 -15,140"/> </g> <g stroke="#FFF"> <path d="M-40,116 -35,116"/> <path d="M-17,97 -17,123"/> <path d="M-5,128 -15,140"/> </g> </g> </g> <g fill="none" stroke="#000"> <g stroke-width="5"> <path d="M60,35 100,35"/> <path d="M158,75 168,90"/> <path d="M118,190 168,155"/> <path d="M3,150 43,185"/> <path d="M-3,95 11,79"/> </g> <g stroke-width="3" stroke="#FFF" marker-end="url(#svg296arrowhead)"> <path d="M158,75 168,90"/> <path d="M60,35 100,35"/> <path d="M118,190 168,155"/> <path d="M3,150 43,185"/> <path d="M-3,95 11,79"/> </g> <g stroke-width="1"> <path d="M60,35 100,35"/> <path d="M158,75 168,90"/> <path d="M118,190 168,155"/> <path d="M3,150 43,185"/> <path d="M-3,95 11,79"/> </g> </g> <g fill="none" stroke="#000"> <path stroke-width="7" d="M85,43 85,140"/> <path stroke-width="5" stroke="#FFF" d="M85,43 85,140" marker-end="url(#svg296arrowhead)"/> <path stroke-width="3" d="M85,43 85,140"/> <path stroke-width="1" stroke="#FFF" d="M85,43 85,140"/> </g> </svg> \end{svg}} \right\} }

The construction of orientals is designed to be compatible with face and degeneracy maps. Therefore the orientals arrange themselves into a cosimplicial ω-category, i.e., a functor

O:ΔωCat O : \Delta \to \omega Cat

from the simplex category Δ\Delta to the category of strict omega-categories.

Relation to other concepts

Relation to ω\omega-groupoids

Regarding the standard nn-simplex as a filtered space with the standard filtering, and denoting for XX a filtered space by Π ω(X)\Pi_\omega(X) the fundamental filter-respecting ω\omega-groupoid of XX, we obtain a cosimplicial omega-groupoid

Π ω(Δ ):ΔωGrpd \Pi_\omega(\Delta^{-}) : \Delta \to \omega Grpd

It should be true that Π ω(Δ n)\Pi_\omega(\Delta^n) is the free ω\omega-groupoid on O(Δ n)O(\Delta^n). Is that right?

Relation to cyclic polytopes

There is a convex-geometric perspective on orientals outlined in Kapranov-Voevodsky We will try to explain the punch-line first, then go into details.

In O(Δ n)O(\Delta^n), denote the source of the nn-morphism corresponding to the nn-face in Δ n\Delta^n by 0^ n1\hat 0_{n-1}, and denote its target by 1^ n1\hat 1_{n-1}. Since these are source and target of the same morphism, they both have the same source, and both have the same target. Write 0^ n2\hat 0_{n-2} for this source, and 1^ n2\hat 1_{n-2} for this target. Inductively define 0^ k\hat 0_k and 1^ k\hat 1_k for all 0kn10\leq k \leq n-1.

The promised punchline is that the (k+1)(k+1)-morphisms from 0^ k\hat 0_k to 1^ k\hat 1_k are in natural correspondence to the triangulations of the (k+1)(k+1)-dimensional cyclic polytope with n+1n+1 vertices.

For example, when k=1k=1, we have 0^ 1\hat 0_1 is the 1-morphism 01n0\rightarrow 1\rightarrow \dots \rightarrow n, and 1^ 1\hat 1_1 is the 1-morphism 0n0\rightarrow n. The 2-morphisms from 0^ 1\hat 0_1 to 1^ 1\hat 1_1 consist of triangulations of the (n+1)(n+1)-gon. See the diagrams above for examples.


We are going to embed the simplex Δ n\Delta^n inside n\mathbb {R}^n, so we can think (convex-)geometrically about it.

Let is get the main convex-geometric definitions out of the way at the beginning.

The moment curve in d\mathbb {R}^d is defined parametrically by p(t)=(t,t 2,,t d)p(t)=(t,t^2,\dots,t^d).

A cyclic polytope of dimension dd with nn vertices is the convex hull of nn points on the moment curve in d\mathbb {R}^d. For many purposes, the choice of the nn points is irrelevant; for example, the face lattice of the polytope does not depend on which points were chosen.

A triangulation of a polytope is a subdivision of the polytope into maximal-dimensional simplices, which overlap only on their boundaries, and all of whose vertices are vertices of the original polytope.

To fix an embedding of Δ n\Delta^n into n\mathbb {R}^n, choose real numbers a 0<a 1<<a na_0\lt a_1\lt\dots\lt a_{n}, and embed Δ n\Delta^n inside n\mathbb {R}^n so that its ii-th vertex is at p(a i)p(a_i).

Now, as already described above, we have that 0^ n1\hat 0_{n-1} and 1^ n1\hat 1_{n-1} are compositions of the morphisms corresponding to some n1n-1-faces, so that the morphism coming from the unique nn-face of Δ n\Delta_n goes from 0^ n1\hat 0_{n-1} to 1^ n1\hat 1_{n-1}. Which faces belong to which (n1)(n-1)-morphism?

The answer is very simple: 0^ n1\hat 0_{n-1} is the composition of the lower faces, while 1^ n1\hat 1_{n-1} is the composition of the upper faces, where lower and upper are always taken with respect to the final co-ordinate.

Now, project into n1\mathbb {R}^{n-1} by forgetting the last co-ordinate. The image of Δ n\Delta^n inside n1\mathbb {R}^{n-1} is the convex hull of n+1n+1 points on the moment curve in n1\mathbb {R}^{n-1}, that is to say, it is a cyclic polytope with n+1n+1 vertics in dimension n1n-1.

0^ n2\hat 0_{n-2} consists of the lower faces of this cyclic polytope (where, as always, we take upper/lower with respect to the final co-ordinate, though note that in this case, the final co-ordinate is the n1n-1-st co-ordinate, since we have already forgotten the nn-th co-ordinate). Similarly, 1^ n2\hat 1_{n-2} consists of the upper faces of this cyclic polytope.

The projections of 0^ n1\hat 0_{n-1} and 1^ n1\hat 1_{n-1}, meanwhile, are triangulations of this cyclic polytope. The cyclic polytope of dimension n1n-1 with n+1n+1 vertices has only two triangulations, so these are all of them.

In general, 0^ k\hat 0_{k} consists of the lower faces of the image of the projection of Δ n\Delta_n into k+1\mathbb {R}^{k+1} by forgetting the last nk+1n-k+1 coordinates, while 1^ k\hat 1_k consists of the upper faces of the image. And then 0^ k+1\hat 0_{k+1}, 1^ k+1\hat 1_{k+1} correspond to particular triangulations of this image and, indeed, the (k+1)(k+1)-morphisms from 0^ k\hat 0_k to 1^ k\hat 1_k correspond bijectively to triangulations of the image (which is a cyclic polytope).



The ω\omega-nerve N(C)N(C) of an omega-category CC is a simplicial set which generalizes the nerve of an ordinary category: the collection of kk-simplices in N(C)N(C) is the collection of images of the kk-th oriental O kO_k in CC, i.e.

(N(C)) k:=Hom ωCat(O([k]),C). (N(C))_k := Hom_{\omega Cat}(O([k]), C) \,.

This naturally extends to a functor

N:ωCatHom ωCat(O([ 2]), 1)SimplicialSets. N : \omega Cat \stackrel{Hom_{\omega Cat}(O([-_2]),-_1)}{\to} SimplicialSets \,.

The nerve functor is faithful. This means that omega categories can be regarded as simplicial sets equipped with extra structure. The precise nature of this structure was identified by Dominic Verity in terms of complicial sets in his work on the Doplicher-Roberts conjecture.

Free ω\omega-Category on a simplicial set

The ω\omega-nerve has a left adjoint, the free ω\omegacategory on a simplicial set

F:SimplicialSetsωCat F : SimplicialSets \to \omega Cat

given by the coend

F(S ):= [n]ΔS nO([n]). F(S_\bullet) := \int^{[n] \in \Delta} S_n \cdot O([n]) \,.

(Here one uses that ωCat\omega Cat is naturally tensored over SetsSets: the notation S nO([n])S_n \cdot O([n]) refers to a coproduct of an S nS_n-indexed collection of copies of O([n])O([n]). See also enriched category theory.)

Because the nerve functor is faithful, the counit of the adjunction FNF \dashv N,

ε C:FNCC,\varepsilon_C: F N C \to C,

is an epimorphism for omega categories CC.

Is FF faithful? It seems to be… If not, how does it fail to be faithful?

Descent and codescent

The orientals O(Δ (n))O(\Delta^{(n)}), as well as the Π ω(Δ (n))\Pi_\omega(\Delta^{(n)}) play a central role in the description of descent and codescent in omega-categorical terms.


The orientals were introduced in

  • Ross Street, The algebra of oriented simplexes, J. Pure Appl. Algebra 49 (1987) 283-335; MR89a:18019 (pdf).

The link to cyclic polytopes is discussed in

  • Mikhail Kapranov and Vladimir Voevodsky, Combinatorial-geometric aspects of polycategory theory: pasting schemes and higher Bruhat orders (list of results). International Category Theory Meeting (Bangor, 1989 and Cambridge, 1990). Cahiers Topologie Géom. Différentielle Catég. 32 (1991), no. 1, 11–27. (pdf).

The ω\omega-groupoids Π ω(Δ n)\Pi_\omega(\Delta^{n}) are discussed in detail in

  • Ronnie Brown, Philip J. Higgins and Rafael Sivera, Nonabelian algebraic topology (pdf)

An introductory survey of the role of orientals in Steet’s definition of an ω\omega-category is given in section 6 of

Revised on April 26, 2012 16:57:45 by Urs Schreiber (