Homotopy type theory

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

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

Contents

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. [1] As such, this article may not represent the views of all researchers in the fields equally. This kind of variability is unavoidable when a field is in rapid flux.

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 Martin Hofmann and Thomas Streicher called "The groupoid interpretation of type theory", in which they showed that intensional type theory had a model in the category of groupoids. [2] 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 Benedikt Ahrens, Krzysztof Kapulkin, and Michael Shulman. [3]

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 [4] 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. [5]

At a subsequent workshop about identity types at Uppsala University in 2006 [6] there were two talks about the relation between intensional type theory and factorization systems: one by Richard Garner, "Factorisation systems for type theory", [7] 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. [8] A general solution, building on Voevodsky's construction, was eventually given by Lumsdaine and Warren in 2014. [9]

At the PSSL86 in 2007 [10] Awodey gave a talk titled "Homotopy type theory" (this was the first public usage of that term, which was coined by Awodey [11] ). 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 [12] 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", [13] 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), [14] 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". [15]

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

The concept of a univalent fibration was introduced by Voevodsky in early 2006. [16] 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". [17]

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". [18] As part of a Coq tutorial for this workshop, Andrej Bauer wrote a small Coq library [19] 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 [20] (the first commit of the latter [21] 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 [22] [23] ), 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 [24] 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. [25]

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. [26]

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", [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

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 so-called 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

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

Key concepts

Intensional type theoryHomotopy theory
types spaces
terms points
dependent type fibration
identity type path space
path
homotopy

"Propositions as types"

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.

Equality

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

Most importantly, given a path , and a proof of some property , the proof can be "transported" along the path to yield a proof of the property . (Equivalently stated, an object of type can be turned into an object of type .) 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 and has been established, and may be used interchangeably thereafter, with no regard to any distinction between them. In homotopy type theory, however, there may be multiple different paths , 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 , the space of paths 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 for , thereby leaving the type of implicit. Do not confuse it with , denoting the identity function on .

Type equivalence

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

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

i.e.

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 and . 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 and :

i.e. for all and ,

The functions of type

together with a proof that they are equivalences are denoted by

.

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

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

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

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

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. [35]

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. [35]

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. [35]

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. [35]

Computer programming

As of 2015, intense research work was underway to model and formally analyse the computational behavior of the univalence axiom in homotopy type theory. [36]

Cubical type theory is one attempt to give computational content to homotopy type theory. [37]

However, it is believed that certain objects, such as semi-simplicial types, cannot be constructed without reference to some notion of exact equality. Therefore, various two-level type theories have been developed which partition their types into fibrant types, which respect paths, and non-fibrant types, which do not. Cartesian cubical computational type theory is the first two-level type theory which gives a full computational interpretation to homotopy type theory. [38]

See also

Related Research Articles

In mathematics, especially in category theory and homotopy theory, a groupoid generalises the notion of group in several equivalent ways. A groupoid can be seen as a:

Set theory Branch of mathematics that studies sets

Set theory is a branch of mathematical logic that studies sets, which informally are collections of objects. Although any type of object can be collected into a set, set theory is applied most often to objects that are relevant to mathematics. The language of set theory can be used to define nearly all mathematical objects.

In mathematics, logic, and computer science, a type system is a formal system in which every term has a "type" which defines its meaning and the operations that may be performed on it. Type theory is the academic study of type systems.

Category (mathematics) algebraic structure

In mathematics, a category is a collection of "objects" that are linked by "arrows". A category has two basic properties: the ability to compose the arrows associatively and the existence of an identity arrow for each object. A simple example is the category of sets, whose objects are sets and whose arrows are functions.

Vladimir Voevodsky Russian mathematician

Vladimir Alexandrovich Voevodsky was a Russian-American mathematician. His work in developing a homotopy theory for algebraic varieties and formulating motivic cohomology led to the award of a Fields Medal in 2002. He is also known for the proof of the Milnor conjecture and motivic Bloch–Kato conjectures and for the univalent foundations of mathematics and homotopy type theory.

In programming language theory and proof theory, the Curry–Howard correspondence is the direct relationship between computer programs and mathematical proofs.

Intuitionistic type theory is a type theory and an alternative foundation of mathematics. Intuitionistic type theory was created by Per Martin-Löf, a Swedish mathematician and philosopher, who first published it in 1972. There are multiple versions of the type theory: Martin-Löf proposed both intensional and extensional variants of the theory and early impredicative versions, shown to be inconsistent by Girard's paradox, gave way to predicative versions. However, all versions keep the core design of constructive logic using dependent types.

In mathematics, a setoid is a set X equipped with an equivalence relation ~. A Setoid may also be called E-set, Bishop set, or extensional set.

The pseudocircle is the finite topological space X consisting of four distinct points {a,b,c,d} with the following non-Hausdorff topology:

In type theory, a system has inductive types if it has facilities for creating a new type along with constants and functions that create terms of that type. The feature serves a role similar to data structures in a programming language and allows a type theory to add concepts like numbers, relations, and trees. As the name suggests, inductive types can be self-referential, but usually only in a way that permits structural recursion.

In mathematics, the first Blakers–Massey theorem, named after Albert Blakers and William S. Massey, gave vanishing conditions for certain triad homotopy groups of spaces.

Thomas Streicher is a German mathematician who is a Professor of Mathematics at Technische Universität Darmstadt. He received his PhD in 1988 from the University of Passau with advisor Manfred Broy.

Pursuing Stacks is an influential 1983 mathematical manuscript by Alexander Grothendieck. The word "stack" refers to a possible generalization of scheme, a central object of study in algebraic geometry.

In category theory, a branch of mathematics, Grothendieck's homotopy hypothesis states that the ∞-groupoids are equivalent to the topological spaces. If we model our ∞-groupoids as Kan complexes, then the homotopy types of the geometric realizations of these sets give models for every homotopy type. It is conjectured that there are many different "equivalent" models for ∞-groupoids all which can be realized as homotopy types.

In mathematics, equivalent definitions are used in two somewhat different ways. First, within a particular mathematical theory, a notion may have more than one definition. These definitions are equivalent in the context of a given mathematical structure. Second, a mathematical structure may have more than one definition.

Univalent foundations are an approach to the foundations of mathematics in which mathematical structures are built out of objects called types. Types in univalent foundations do not correspond exactly to anything in set-theoretic foundations, but they may be thought of as spaces, with equal types corresponding to homotopy equivalent spaces and with equal elements of a type corresponding to points of a space connected by a path. Univalent foundations are inspired both by the old Platonic ideas of Hermann Grassmann and Georg Cantor and by "categorical" mathematics in the style of Alexander Grothendieck. Univalent foundations depart from the use of classical predicate logic as the underlying formal deduction system, replacing it, at the moment, with a version of Martin-Löf type theory. The development of univalent foundations is closely related to the development of homotopy type theory.

Michael "Mike" Shulman is an American mathematician at the University of San Diego who works in category theory and higher category theory, homotopy theory, logic as applied to set theory, and computer science.

In type theory, a polynomial functor is a kind of endofunctor of a category of types that is intimately related to the concept of inductive and coinductive types. Specifically, all W-types are initial algebras of such functors.

In mathematics, homotopy theory is a systematic study of situations in which maps come with homotopies between them. It originated as a topic in algebraic topology but nowadays it is studied as an independent discipline. Besides algebraic topology, the theory has also been in used in other areas of mathematics such as algebraic geometry and category theory.

Mikhail Kapranov, is a Russian mathematician, specializing in algebraic geometry, representation theory, mathematical physics, and category theory.

References

  1. Shulman, Michael (2016-01-27). "Homotopy Type Theory: A synthetic approach to higher equalities". arXiv: 1601.05035v3 [math.LO]., footnote 1
  2. Hofmann, Martin; Streicher, Thomas (1998). "The groupoid interpretation of type theory". In Sambin, Giovanni; Smith, Jan M. (eds.). Twenty Five Years of Constructive Type Theory. Oxford Logic Guides. 36. Clarendon Press. pp. 83–111. ISBN   978-0-19-158903-4. MR   1686862.
  3. Ahrens, Benedikt; Kapulkin, Krzysztof; Shulman, Michael (2015). "Univalent categories and the Rezk completion". Mathematical Structures in Computer Science. 25 (5): 1010–1039. arXiv: 1303.0584 . doi:10.1017/S0960129514000486. MR   3340533. S2CID   1135785.
  4. Foundational Methods in Computer Science, University of Calgary, June 7th - 9th, 2006
  5. Warren, Michael A. (2006). Homotopy Models of Intensional Type Theory (PDF) (Thesis).
  6. Identity Types - Topological and Categorical Structure, Workshop, Uppsala, November 13-14, 2006
  7. Richard Garner, Factorisation axioms for type theory
  8. Berg, Benno van den; Garner, Richard (27 July 2010). "Topological and simplicial models of identity types". arXiv: 1007.4638 [math.LO].
  9. Lumsdaine, Peter LeFanu; Warren, Michael A. (6 November 2014). "The local universes model: an overlooked coherence construction for dependent type theories". ACM Transactions on Computational Logic. 16 (3): 1–31. arXiv: 1411.1736 . doi:10.1145/2754931. S2CID   14068103.
  10. 86th edition of the Peripatetic Seminar on Sheaves and Logic, Henri Poincaré University, September 8-9 2007
  11. Preliminary list of PSSL86 participants
  12. Awodey, Steve; Warren, Michael A. (3 September 2007). "Homotopy theoretic models of identity types". Mathematical Proceedings of the Cambridge Philosophical Society. 146: 45. arXiv: 0709.0248 . Bibcode:2008MPCPS.146...45A. doi:10.1017/S0305004108001783. S2CID   7915709.
  13. A very short note on homotopy λ-calculus, by Vladimir Voevodsky, September 27, 2006 PDF
  14. van den Berg, Benno; Garner, Richard (1 December 2007). "Types are weak omega-groupoids". Proceedings of the London Mathematical Society. 102 (2): 370–394. arXiv: 0812.0298 . doi:10.1112/plms/pdq026. S2CID   5575780.
  15. Lumsdaine, Peter (2010). "Higher Categories from Type Theories" (PDF) (Ph.D.). Carnegie Mellon University.
  16. Notes on homotopy lambda calculus, March 2006
  17. GitHub repository, Univalent Mathematics
  18. Mini-Workshop: The Homotopy Interpretation of Constructive Type Theory, Mathematical Research Institute of Oberwolfach, February 27th – March 5th, 2011
  19. GitHub repository, Andrej Bauer, Homotopy theory in Coq
  20. GitHub Basic homotopy type theory, Andrej Bauer & Vladimir Voevodsky, Apr 29, 2011
  21. GitHub repository, Homotopy type theory
  22. Shulman, Michael (2015). "Univalence for inverse diagrams and homotopy canonicity". Mathematical Structures in Computer Science. 25 (5): 1203–1277. arXiv: 1203.3253 . doi:10.1017/S0960129514000565. S2CID   13595170.
  23. Canonicity for 2-Dimensional Type Theory, by Daniel R. Licata and Robert Harper, Carnegie Mellon University, July 21, 2011
  24. Homotopy Type Theory and Univalent Foundations Blog
  25. Homotopy Type Theory blog
  26. Type Theory and Univalent Foundations
  27. 1 2 3 4 5 Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics. Institute for Advanced Study.
  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. Monroe, D (2014). "A New Type of Mathematics?". Comm ACM. 57 (2): 13–15. doi:10.1145/2557446. S2CID   6120947.
  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. 1 2 3 4 Meyer, Florian (3 September 2014). "A new foundation for mathematics". R&D Magazine. Retrieved 6 September 2014.
  36. Sojakova, Kristina (2015). Higher Inductive Types as Homotopy-Initial Algebras. POPL 2015. arXiv: 1402.0761 . doi:10.1145/2676726.2676983.
  37. Cohen, Cyril; Coquand, Thierry; Huber, Simon; Mörtberg, Anders (2015). Cubical Type Theory: a constructive interpretation of the univalence axiom. TYPES 2015.
  38. Anguili, Carlo; Favonia; Harper, Robert (2018). Cartesian Cubical Computational Type Theory: Constructive Reasoning with Paths and Equalities (PDF). Computer Science Logic 2018. Retrieved 26 Aug 2018. (to appear)

Bibliography

Further reading

Libraries of formalized mathematics