Homotopy type theory

From Infogalactic: the planetary knowledge core
(Redirected from Higher inductive type)
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

File:Hott book cover.png
Cover of Homotopy Type Theory: Univalent Foundations of Mathematics.

In mathematical logic and computer science, homotopy type theory (HoTT) refers to various lines of development of intensional type theory, based on the interpretation of types as objects to which the intuition of (abstract) homotopy theory applies.

This includes, among other lines of work, the construction of homotopical and higher-categorical models for such type theories; the use of type theory as a logic (or internal language) for abstract homotopy theory and higher category theory; the development of mathematics within a type-theoretic foundation (including both previously existing mathematics and new mathematics that homotopical types make possible); and the formalization of each of these in computer proof assistants.

There is a large overlap between the work referred to as homotopy type theory, and as the univalent foundations project. Although neither is precisely delineated, and the terms are sometimes used interchangeably, the choice of usage also sometimes corresponds to differences in viewpoint and emphasis. As such, this article may not represent the views of all researchers in the fields equally.

History

Prehistory: the groupoid model

At one time the idea that types in intensional type theory with their identity types could be regarded as groupoids was mathematical folklore. It was first made precise semantically in the 1998 paper of Hofmann and Streicher called "The groupoid interpretation of type theory", in which they showed that intensional type theory had a model in the category of groupoids.[1] This was the first truly "homotopical" model of type theory, albeit only "1-dimensional" (the traditional models in the category of sets being homotopically 0-dimensional).

Their paper also foreshadowed several later developments in homotopy type theory. For instance, they noted that the groupoid model satisfies a rule they called "universe extensionality", which is none other than the restriction to 1-types of the univalence axiom that Vladimir Voevodsky proposed ten years later. (The axiom for 1-types is notably simpler to formulate, however, since a coherence notion of "equivalence" is not required.) They also defined "categories with isomorphism as equality" and conjectured that in a model using higher-dimensional groupoids, for such categories one would have "equivalence is equality"; this was later proven by Ahrens, Kapulkin, and Shulman.[2]

Early history: model categories and higher groupoids

The first higher-dimensional models of intensional type theory were constructed by Steve Awodey and his student Michael Warren in 2005 using Quillen model categories. These results were first presented in public at the conference FMCS 2006[3] at which Warren gave a talk titled "Homotopy models of intensional type theory", which also served as his thesis prospectus (the dissertation committee present were Awodey, Nicola Gambino and Alex Simpson). A summary is contained in Warren's thesis prospectus abstract.[4]

At a subsequent workshop about identity types at Uppsala University in 2006[5] there were two talks about the relation between intensional type theory and factorization systems: one by Richard Garner, "Factorisation systems for type theory",[6] and one by Michael Warren, "Model categories and intensional identity types". Related ideas were discussed in the talks by Steve Awodey, "Type theory of higher-dimensional categories", and Thomas Streicher, "Identity types vs. weak omega-groupoids: some ideas, some problems". At the same conference Benno van den Berg gave a talk titled "Types as weak omega-categories" where he outlined the ideas that later became the subject of a joint paper with Richard Garner.

All early constructions of higher dimensional models had to deal with the problem of coherence typical of models of dependent type theory, and various solutions were developed. One such was given in 2009 by Voevodsky, another in 2010 by van den Berg and Garner[7]). A general solution, building on Voevodsky's construction, was eventually given by Lumsdaine and Warren in 2014.[8]

At the PSSL86 in 2007[9] Awodey gave a talk titled "Homotopy type theory" (this was the first public usage of that term, which was coined by Awodey[10]). Awodey and Warren summarized their results in the paper "Homotopy theoretic models of identity types", which was posted on the ArXiv preprint server in 2007[11] and published in 2009; a more detailed version appeared in Warren's thesis "Homotopy theoretic aspects of constructive type theory" in 2008.

At about the same time, Vladimir Voevodsky was independently investigating type theory in the context of the search of a language for practical formalization of mathematics. In September 2006 he posted to the Types mailing list "A very short note on homotopy lambda calculus",[12] which sketched the outlines of a type theory with dependent products, sums and universes and of a model of this type theory in Kan simplicial sets. It began by saying "The homotopy λ-calculus is a hypothetical (at the moment) type system" and ended with "At the moment much of what I said above is at the level of conjectures. Even the definition of the model of TS in the homotopy category is non-trivial" referring to the complex coherence issues that were not resolved until 2009. This note included a syntactic definition of "equality types" that were claimed to be interpreted in the model by path-spaces, but did not consider Per Martin-Löf's rules for identity types. It also stratified the universes by homotopy dimension in addition to size, an idea that later was mostly discarded.

On the syntactic side, Benno van den Berg conjectured in 2006 that the tower of identity types of a type in intensional type theory should have the structure of an ω-category, and indeed a ω-groupoid, in the "globular, algebraic" sense of Michael Batanin. This was later proven independently by van den Berg and Garner in the paper "Types are weak omega-groupoids" (published 2008),[13] and by Peter Lumsdaine in the paper "Weak ω-Categories from Intensional Type Theory" (published 2009) and as part of his 2010 Ph.D. thesis "Higher Categories from Type Theories".[14]

The univalence axiom, synthetic homotopy theory, and higher inductive types

The concept of a univalent fibration was introduced by Voevodsky in early 2006[15] However, because of the insistence of all presentations of the Martin-Löf type theory on the property that the identity types, in the empty context, may contain only reflexivity, Voevodsky did not recognize until 2009 that these identity types can be used in combination with the univalent universes. In particular, the idea that univalence can be introduced simply by adding an axiom to the existing Martin-Löf type theory appeared only in 2009.

Also in 2009, Voevodsky worked out more of the details of a model of type theory in Kan complexes, and observed that the existence of a universal Kan fibration could be used to resolve the coherence problems for categorical models of type theory. He also proved, using an idea of A. K. Bousfield, that this universal fibration was univalent: the associated fibration of pairwise homotopy equivalences between the fibers is equivalent to the paths-space fibration of the base.

To formulate univalence as an axiom Voevodsky found a way to define "equivalences" syntactically that had the important property that the type representing the statement "f is an equivalence" was (under the assumption of function extensionality) (-1)-truncated (i.e. contractible if inhabited). This enabled him to give a syntactic statement of univalence, generalizing Hofmann and Streicher's "universe extensionality" to higher dimensions. He was also able to use these definitions of equivalences and contractibility to start developing significant amounts of "synthetic homotopy theory" in the proof assistant Coq; this formed the basis of the library later called "Foundations" and eventually "UniMath".[16]

Unification of the various threads began in February 2010 with an informal meeting at Carnegie Mellon University, where Voevodsky presented his model in Kan complexes and his Coq code to a group including Awodey, Warren, Lumsdaine, and Robert Harper, Dan Licata, Michael Shulman, and others. This meeting produced the outlines of a proof (by Warren, Lumsdaine, Licata, and Shulman) that every homotopy equivalence is an equivalence (in Voevodsky's good coherent sense), based on the idea from category theory of improving equivalences to adjoint equivalences. Soon afterwards, Voevodsky proved that the univalence axiom implies function extensionality.

The next pivotal event was a mini-workshop at the Mathematical Research Institute of Oberwolfach in March 2011 organized by Steve Awodey, Richard Garner, Per Martin-Löf, and Vladimir Voevodsky, titled "The homotopy interpretation of constructive type theory".[17] As part of a Coq tutorial for this workshop, Andrej Bauer wrote a small Coq library.[18] based on Voevodsky's ideas (but not actually using any of his code); this eventually became the kernel of the first version of the "HoTT" Coq library[19] (the first commit of the latter[20] by Michael Shulman notes "Development based on Andrej Bauer's files, with many ideas taken from Vladimir Voevodsky's files"). One of the most important things to come out of the Oberwolfach meeting was the basic idea of higher inductive types, due to Lumsdaine, Shulman, Bauer, and Warren. The participants also formulated a list of important open questions, such as whether the univalence axiom satisfies canonicity (still open, although some special cases have been resolved positively[21][22]), whether the univalence axiom has nonstandard models (since answered positively by Shulman), and how to define (semi)simplicial types (still open in MLTT, although it can be done in Voevodsky's Homotopy Type System (HTS), a type theory with two equality types).

Soon after the Oberwolfach workshop, the Homotopy Type Theory website and blog[23] was established, and the subject began to be popularized under that name. An idea of some of the important progress during this period can be obtained from the blog history.[24]

Univalent foundations

The phrase "univalent foundations" is agreed by all to be closely related to homotopy type theory, but not everyone uses it in the same way. It was originally used by Vladimir Voevodsky to refer to his vision of a foundational system for mathematics in which the basic objects are homotopy types, based on a type theory satisfying the univalence axiom, and formalized in a computer proof assistant.[25]

As Voevodsky's work became integrated with the community of other researchers working on homotopy type theory, "univalent foundations" was sometimes used interchangeably with "homotopy type theory",[26][27] and other times to refer only to its use as a foundational system (excluding, for example, the study of model-categorical semantics or computational metatheory).[28] For instance, the subject of the IAS special year was officially given as "univalent foundations", although a lot of the work done there focused on semantics and metatheory in addition to foundations. The book produced by participants in the IAS program was titled "Homotopy type theory: Univalent foundations of mathematics"; although this could refer to either usage, since the book only discusses HoTT as a mathematical foundation.[27]

Special Year on Univalent Foundations of Mathematics

File:The making of HoTT book.webm
An animation showing development of the HoTT Book on the GitHub repository by the participants in the Univalent Foundations Special Year project.

In 2012-13 researchers at the Institute for Advanced Study held A Special Year on Univalent Foundations of Mathematics.[29] The special year brought together researchers in topology, computer science, category theory, and mathematical logic. The program was organized by Steve Awodey, Thierry Coquand and Vladimir Voevodsky.

During the program Peter Aczel, who was one of the participants, initiated a working group which investigated how to do type theory informally but rigorously, in a style that is analogous to ordinary mathematicians doing set theory. After initial experiments it became clear that this was not only possible but highly beneficial, and that a book (the HoTT Book)[27][30] could and should be written. Many other participants of the project then joined the effort with technical support, writing, proof reading, and offering ideas. Unusually for a mathematics text, it was developed collaboratively and in the open on GitHub, is released under a Creative Commons license that allows people to fork their own version of the book, and is both purchasable in print and downloadable free of charge.[31][32][33]

More generally, the special year was a catalyst for the development of the entire subject; the HoTT book was only one, albeit the most visible, result.

Official participants in the special year

<templatestyles src="Div col/styles.css"/>

ACM Computing Reviews listed the book as a notable 2013 publication in the category "mathematics of computing".[34]

Key concepts

Intensional type theory Homotopy theory
types A spaces A
terms a points a
a:A a\in A
dependent type x:A\ \vdash\ B(x)\ fibration B \to A
identity type \mathrm{Id}_A(a,b) path space
p:\mathrm{Id}_A(a,b) path p:a\mapsto b
\alpha:\mathrm{Id}_{\mathrm{Id}_A(a,b)}(p,q) homotopy \alpha:p\Rightarrow q

HoTT uses a modified version of the Propositions as Types interpretation of type theory, according to which types can also represent propositions and terms can then represent proofs. In HoTT, however, unlike in standard Propositions as Types, a special role is played by 'mere propositions' which, roughly speaking, are those types having at most one term, up to propositional equality. These are more like conventional logical propositions than are general types, in that they are proof-irrelevant.

The fundamental concept of homotopy type theory is the path. In HoTT, the type a = b is the type of all paths from the point a to the point b. (Therefore, a proof that a point a equals a point b is the same thing as a path from the point a to the point b.) For any point a, there exists a path of type a = a, corresponding to the reflexive property of equality. A path of type a = b can be inverted, forming a path of type b = a, corresponding to the symmetric property of equality. Two paths of type a = b resp. b = c can be concatenated, forming a path of type a = c; this corresponds to the transitive property of equality.

Most importantly, given a path p:a=b, and a proof of some property P(a), the proof can be "transported" along the path p to yield a proof of the property P(b). (Equivalently stated, an object of type P(a) can be turned into an object of type P(b).) This corresponds to the substitution property of equality. Here, an important difference between HoTT and classical mathematics comes in. In classical mathematics, once the equality of two values a and b has been established, a and b may be used interchangeably thereafter, with no regard to any distinction between them. In homotopy type theory, however, there may be multiple different paths a = b, and transporting an object along two different paths will yield two different results. Therefore, in homotopy type theory, when applying the substitution property, it is necessary to state which path is being used.

In general, a "proposition" can have multiple different proofs. (For example, the type of all natural numbers, when considered as a proposition, has every natural number as a proof.) Even if a proposition has only one proof a, the space of paths a = a may be non-trivial in some way. A "mere proposition" is any type which either is empty, or contains only one point with a trivial path space.

Note that people write a = b for Id_A(a,b), thereby leaving the type A of a, b implicit. Do not confuse it with id_A : A\to A, denoting the identity function on A.

Type equivalence

Two types A and B belonging to some universe U are defined as being equivalent if there exists an equivalence between them. An equivalence is a function

f:A \to B

which has both a left inverse and a right inverse, in the sense that for suitably chosen g and h, the following types are both inhabited:

Id_{B\rightarrow B}(f \circ g, id_B),
Id_{A \rarr A}(h \circ f, id_A).

i.e.

f \circ g =_{B\rightarrow B} id_B,
h \circ f =_{A\rightarrow A} id_A.

This expresses a general notion of "f has both a left inverse and right inverse", using equality types. Note that the invertibility conditions above are equality types in the function types A\rarr A and B\rarr B.. One generally assumes the function extensionality axiom, which ensures that these are equivalent to the following types that express invertibility using the equality on the domain and codomain A and B:

\Pi_{y:B}.\ Id_B((f \circ g)(y), id_B(y)),
\Pi_{x:A}.\ Id_A((h \circ f)(x), id_A(x)).

i.e. for all x:A and y:B,

f(g(y)) =_B y,
h(f(x)) =_A x.

The type functions in

A \to B

that are equivalences are denoted by

A \simeq B.

The univalence axiom

Having defined functions that are equivalences as above, one can show that there is a canonical way to turn paths to equivalences. In other words, there is a function of the type

(A = B) \to (A \simeq B),

which expresses that types A,B that are equal are, in particular, also equivalent.

The univalence axiom states that this function is itself an equivalence.[35] Therefore, we have

(A = B) \simeq (A \simeq B)

"In other words, identity is equivalent to equivalence. In particular, one may say that 'equivalent types are identical'."[36]

Applications

Theorem proving

HoTT allows mathematical proofs to be translated into a computer programming language for computer proof assistants much more easily than before. This approach offers the potential for computers to check difficult proofs.[37]

One goal of mathematics is to formulate axioms from which virtually all mathematical theorems can be derived and proven unambiguously. Correct proofs in mathematics must follow the rules of logic. They must be derivable without error from axioms and already-proven statements.[37]

HoTT adds the univalence axiom, which relates the equality of logical-mathematical propositions to homotopy theory. An equation such as “a=b” is a mathematical proposition in which two different symbols have the same value. In homotopy type theory, this is taken to mean that the two shapes which represent the values of the symbols are topologically equivalent.[37]

These topological equivalence relationships, ETH Zürich Institute for Theoretical Studies director Giovanni Felder argues, can be better formulated in homotopy theory because it is more comprehensive: Homotopy theory explains not only why “a equals b” but also how to derive this. In set theory, this information would have to be defined additionally, which makes the translation of mathematical propositions into programming languages more difficult.[37]

Computer programming

Lua error in package.lua at line 80: module 'strict' not found. Computational interpretation of homotopy type theory is an open problem.[38]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Foundational Methods in Computer Science, University of Calgary, June 7th - 9th, 2006
  4. Michael Warren, "Homotopy Models of Intensional Type Theory"
  5. Identity Types - Topological and Categorical Structure, Workshop, Uppsala, November 13-14, 2006
  6. Richard Garner, Factorisation axioms for type theory
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. 86th edition of the Peripatetic Seminar on Sheaves and Logic, Henri Poincaré University, September 8-9 2007
  10. Preliminary list of PSSL86 participants
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. A very short note on homotopy λ-calculus, by Vladimir Voevodsky, September 27, 2006 PDF
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Notes on homotopy lambda calculus, March 2006
  16. GitHub repository, Univalent Mathematics
  17. Mini-Workshop: The Homotopy Interpretation of Constructive Type Theory, Mathematical Research Institute of Oberwolfach, February 27th – March 5th, 2011
  18. GitHub repository, Andrej Bauer, Homotopy theory in Coq
  19. GitHub Basic homotopy type theory, Andrej Bauer & Vladimir Voevodsky, Apr 29, 2011
  20. GitHub repository, Homotopy type theory
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Canonicity for 2-Dimensional Type Theory, by Daniel R. Licata and Robert Harper, Carnegie Mellon University, July 21, 2011
  23. Homotopy Type Theory and Univalent Foundations Blog
  24. Homotopy Type Theory blog
  25. Type Theory and Univalent Foundations
  26. See especially the Introduction to Homotopy Type Theory: Univalent Foundations of Mathematics
  27. 27.0 27.1 27.2 Homotopy Type Theory: Univalent Foundations of Mathematics
  28. Homotopy Type Theory: References
  29. IAS school of mathematics: Special Year on The Univalent Foundations of Mathematics
  30. Official announcement of The HoTT Book, by Steve Awodey, 20 June 2013
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Announcement of The HoTT Book, by Mike Shulman at The n-Category Café, June 20, 2013
  33. Announcement of The HoTT Book, by Andrej Bauer, June 20, 2013
  34. ACM Computing Reviews. "Best of 2013".
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. 37.0 37.1 37.2 37.3 Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.

Bibliography

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found. As PDF.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found. As postscript.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

Libraries of formalized mathematics

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links