As many of you may know, the Institute for Advanced Study is sponsoring a year-long program, called “Univalent Foundations for Mathematics” (UF), which is developing the theory and applications of Homotopy Type Theory (HTT). The UF program is organized by Steve Awodey (CMU), Thierry Coquand (Chalmers), and Vladimir Voevodsky (IAS). About two dozen people are in residence at the Institute to participate in the program, including Peter Aczel, Andrej Bauer, Peter Dybjer, Dan Licata, Per Martin-Löf, Peter Lumsdaine, Mike Shulman, and many others. I have been shuttling back and forth between the Institute and Carnegie Mellon, and will continue to do so next semester.

The excitement surrounding the program is palpable. We all have the sense that we are doing something *important* that will change the world. A typical day consists of one or two lectures of one or two hours, with the rest of the day typically spent in smaller groups or individuals working at the blackboard. There are many strands of work going on simultaneously, including fundamental type theory, developing proof assistants, and formulating a body of informal type theory. As visitors come and go we have lectures on many topics related to HTT and UF, and there is constant discussion going on over lunch, tea, and dinner each day. While there I work each day to the point of exhaustion, eager to pursue the many ideas that are floating around.

So, why is homotopy type theory so exciting? For me, and I think for many of us, it is the most exciting development in type theory since its inception. It brings together two seemingly disparate topics, algebraic topology and type theory, and provides a gorgeous framework in which to develop both mathematics and computer science. Many people have asked me why it’s so important. My best answer is that it’s too beautiful to be ignored, and such a beautiful concept bmust be good for something! We’ll be at this for years, but it’s too soon to say yet where the best applications of HTT will arise. But I am sure in my bones that it’s as important as type theory itself.

Homotopy type theory is based on two closely related concepts:

*Constructivity*. Proofs of propositions are mathematical objects classified by their types.*Homotopy.*Paths between objects of a type are proofs of their interchangeability in all contexts. Paths in a type form a type whose paths are homotopies (deformations of paths).

Homotopy type theory is organized so that maps and families *respect homotopy*, which, under the identification of paths with equality proofs, means that they respect equality. The force of this organization arises from axioms that specify what are the paths within a type. There are two major sources of non-trivial paths within a type, the *univalence axiom*, and *higher inductive types*.

The univalence axiom specifies that there is an equivalence between equivalences and equalities of the objects of a universe. Unravelling a bit, this means that for any two types inhabiting a universe, evidence for their equivalence (a pair of maps that are inverse up to higher homotopy, called *weak equivalence*) is evidence for their equality. Put another way, weak equivalences are paths in the universe. So, for example, a bijection between two elements of the universe of sets constitutes a proof of the *equality* (universal interchangeability) of the two sets.

Higher inductive types allow one to define types by specifying their elements, any paths between their elements, any paths between those paths, and so on to any level, or *dimension*. For example, the interval, , has as elements the endpoints , and a path between and within . The circle, has an element and a path from to itself within .

Respect for homotopy means that, for example, a family of types indexed by the type must be such that if and are isomorphic sets, then there must be an equivalence between the types and allowing us to transport objects from one “fiber” to the other. And any function with domain must respect bijection—it could be the cardinality function, for example, but it cannot be a function that would distinguish from .

Univalence allows us to formalize the informal convention of identifying things “up to isomorphism”. In the presence of univalence equivalence types (spaces) are, in fact, *equal*. So rather than rely on convention, we have a formal account of such identifications.

Higher inductives generalize ordinary inductive definitions to higher dimensions. This means that we can now define maps (computable functions!) between, say, the 4-dimensional sphere and the 3-dimensional sphere, or between the interval and the torus. HTT makes absolutely clear what this even means, thanks to higher inductive types. For example, a map out of is given by two pieces of data:

- What to do with the base point. It must be mapped to a point in the target space.
- What to do with the loop. It must be mapped to a loop in the target space based at the target point.

A map out of is given similarly by specifying

- What to do with the endpoints. These must be specified points in the target space.
- What to do with the segment. It must be a path between the specified points in the target space.

It’s all just good old functional programming! Or, rather, it *would* be, if we were to have a good computational semantics for HTT, a topic of intense interest at the IAS this year. It’s all sort-of-obvious, yet also sort-of-non-obvious, for reasons that are difficult to explain briefly. (If I could, they would probably be considered obvious, and not in need of much explanation!)

A game-changing aspect of all of this is that HTT provides a very nice foundation for mathematics in which types (-groupoids) play a fundamental role as classifying all mathematical objects, including proofs of propositions, which are just types. Types may be classified according to the structure of their paths—and hence propositions may be classified according to the structure of their proofs. For example, any two proofs of equivalence of two natural numbers are themselves equivalent; there’s only one way to say that , for example. Of course there is no path between and . And these two situations exhaust the possibilities: any two paths between natural numbers are equal (but there may not even be one). This unicity of paths property lifts to function spaces by extensionality, paths between functions being just paths between the range elements for each choice of domain element. But the universe of Sets is not like this: there are many paths between sets (one for each bijection), and these are by no means equivalent. However, there is at most one way to show that two bijections between sets are equivalent, so the structure “peters out” after dimension 2.

The idea to apply this kind of analysis to proofs of propositions is a distinctive feature of HTT, arising from the combination of constructivity, which gives proofs status as mathematical objects, and homotopy, which provides a powerful theory of the equivalence of proofs. Conventional mathematics ignores proofs as objects of study, and is thus able to express certain ideas only indirectly. HTT brings out the latent structure of proofs, and provides an elegant framework for expressing these concepts directly.

*Update*: edited clumsy prose and added concluding paragraph.