Homotopy Type Theory homotopy type theory > history (Rev #11)

\tableofcontents

\section{Idea}

Homotopy type theory is a framework of dependent type theories which additionally consists of

  • identity types

  • dependent product types

  • dependent sum types

  • univalent universes

  • inductive types, higher inductive types, inductive type families, et cetera.

\section{Presentation}

The model of homotopy type theory we shall be presenting here is the objective type theory version of homotopy type theory. There are multiple reasons for this:

  • Since objective type theory lacks definitional equality,

    • The ruleset is simpler in the objective type theory model of homotopy type theory than other models such as Martin-Löf type theory, cubical type theory, or higher observational type theory

    • The results in objective type theory are more general than in models which use definitional equality

    • It is similar to other non-type theory foundations such as the various flavors of set theory, since it also only has one notion of equality, which is propositional equality in both objective type theory and set theory, and uses propositional equality to define terms and types.

  • From a more practical standpoint, objective type theory not only has decidable type checking, it has polynomial (quadratic) time type checking, which makes it efficient from a computational standpoint.

In a similar manner, for simplicity and ease of presentation, we shall also follow the HoTT book in not including a separate AtypeA \; \mathrm{type} judgment and rather stipulating that every type is an element of a Russell universe.

\subsection{Judgments and contexts}

We introduce two judgments in the model: typing judgments, where we judge aa to be an element of AA, a:Aa:A, and context judgments, where we judge Γ\Gamma to be a context, Γctx\Gamma \; \mathrm{ctx}. Contexts are lists of typing judgments a:Aa:A, b:Bb:B, c:Cc:C, et cetera, and are formalized by the rules for the empty context and extending the context by a typing judgment

()ctxΓctxΓA:U i(Γ,a:A)ctx\frac{}{() \; \mathrm{ctx}} \qquad \frac{\Gamma \; \mathrm{ctx} \quad \Gamma \vdash A:\mathrm{U}_i}{(\Gamma, a:A) \; \mathrm{ctx}}

\subsection{Structural rules}

The variable rule states that we may derive a typing judgment if the typing judgment is in the context already:

Γ,a:A,ΔctxΓ,a:A,Δa:A\frac{\vdash \Gamma, a:A, \Delta \; \mathrm{ctx}}{\vdash \Gamma, a:A, \Delta \vdash a:A}

Let 𝒥\mathcal{J} be any arbitrary judgment. Then we have the following rules:

The weakening rule:

Γ,Δ𝒥ΓA:𝒰 iΓ,a:A,Δ𝒥\frac{\Gamma, \Delta \vdash \mathcal{J} \quad \Gamma \vdash A:\mathcal{U}_i}{\Gamma, a:A, \Delta \vdash \mathcal{J}}

The substitution rule:

Γa:AΓ,b:A,Δ𝒥Γ,Δ[a/b]𝒥[a/b]\frac{\Gamma \vdash a:A \quad \Gamma, b:A, \Delta \vdash \mathcal{J}}{\Gamma, \Delta[a/b] \vdash \mathcal{J}[a/b]}

The weakening and substitution rules are admissible rules: they do not need to be explicitly included in the type theory as they could be proven by induction on the structure of all possible derivations.

\subsection{Russell universes}

Universes are the types of types in type theory.

We introduce a hierarchy of universes U iU_i indexed by natural numbers ii in the metatheory, with rules for universe formation and cumulativity.

ΓctxΓU i:U i+1ΓA:U iΓA:U i+1\frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash U_i : U_{i + 1}} \qquad \frac{\Gamma \vdash A:U_i}{\Gamma \vdash A:U_{i + 1}}

\subsection{Sections and dependent types}

A section is a term b:Bb:B in the context of the variable judgment x:Ax:A, x:Ab:Bx:A \vdash b:B. Sections are usually written as b(x)b(x) to indicate its dependence upon xx.

A dependent type is a section of a universe B:U iB:U_i in the context of the variable judgment x:Ax:A, x:AB:U ix:A \vdash B:U_i, and since they are sections, they are usually written as B(x)B(x).

\subsection{Equality}

Equality in type theory is represented by the identity type, which is also called the path type or identification type. The terms of the identity type could be called paths or identifications.

Equality comes with a formation rule, an introduction rule, an elimination rule, and a computation rule:

Formation rule for identity types:

ΓA:U iΓ,a:A,b:Aa= Ab:U i\frac{\Gamma \vdash A:U_i}{\Gamma, a:A, b:A \vdash a =_A b:U_i}

Introduction rule for identity types:

ΓA:U iΓ,a:Arefl A(a):a= Aa\frac{\Gamma \vdash A:U_i}{\Gamma, a:A \vdash \mathrm{refl}_A(a) : a =_A a}

Elimination rule for identity types:

Γ,a:A,b:A,p:a= Ab,Δ(a,b,p)C(a,b,p):U iΓ,a:A,Δ(a,a,refl A(a))t:C(a,a,refl A(a))Γ,a:A,b:A,p:a= Ab,Δ(a,b,p)J(t,a,b,p):C(a,b,p)\frac{\Gamma, a:A, b:A, p:a =_A b, \Delta(a, b, p) \vdash C(a, b, p):U_i \quad \Gamma, a:A, \Delta(a, a, \mathrm{refl}_A(a)) \vdash t:C(a, a, \mathrm{refl}_A(a))}{\Gamma, a:A, b:A, p:a =_A b, \Delta(a, b, p) \vdash J(t, a, b, p):C(a, b, p)}

Conversion rules for identity types:

Γ,a:A,b:A,p:a= Ab,Δ(a,b,p)C(a,b,p):U iΓ,a:A,Δ(a,a,refl A(a))t:C(a,a,refl A(a))Γ,a:A,b:A,p:a= Ab,Δ(a,b,p)β = A(a):J(t,a,a,refl(a))= C(a,a,refl A(a))t\frac{\Gamma, a:A, b:A, p:a =_A b, \Delta(a, b, p) \vdash C(a, b, p):U_i \quad \Gamma, a:A, \Delta(a, a, \mathrm{refl}_A(a)) \vdash t:C(a, a, \mathrm{refl}_A(a))}{\Gamma, a:A, b:A, p:a =_A b, \Delta(a, b, p) \vdash \beta_{=_A}(a) : J(t, a, a, \mathrm{refl}(a)) =_{C(a, a, \mathrm{refl}_A(a))} t}

\subsection{Definitions}

In mathematics, many times one would want to define an element to be another element of a type. In order to define an element a:Aa:A to be an element b:Ab:A, one says that element a:Aa:A comes with an identification def(a,b):a= Ab\mathrm{def}(a, b):a =_A b. Since types are elements of universes, one defines a type A:𝒰 iA:\mathcal{U}_i to be a type B:𝒰 iB:\mathcal{U}_i if the type A:𝒰 iA:\mathcal{U}_i comes with an identification def(A,B):A= 𝒰 iB\mathrm{def}(A, B):A =_{\mathcal{U}_i} B.

Sometimes, for ease of simplicity, the identity type is simply written a=ba = b for elements a:Aa:A and b:Ab:A. The type argument AA for the identity type then becomes an implicit argument. Thus, in order to define aa to be bb, one says that aa comes with an identification def(a,b):a=b\mathrm{def}(a, b):a = b.

In a proof assistant or some other program, elaboration is needed to expand out all the implicit arguments to get the right type a= Aba =_A b.

\subsection{Function types}

\subsection{Pi types}

Pi types are the dependent versions of functions or products, depending on how one looks at it.

Formation rule for Pi types:

ΓA:U iΓ,x:AB:U iΓΠ(x:A).B(x):U i\frac{\Gamma \vdash A:U_i \quad \Gamma, x:A \vdash B:U_i}{\Gamma \vdash \Pi(x:A).B(x):U_i}

Introduction rule for Pi types:

Γ,x:Ab:BΓλ(x:A).b(x):Π(x:A).B(x)\frac{\Gamma, x:A \vdash b:B}{\Gamma \vdash \lambda(x:A).b(x):\Pi(x:A).B(x)}

Elimination rule for Pi types:

Γf:Π(x:A).B(x)Γa:AΓf(a):B[a/x]\frac{\Gamma \vdash f:\Pi(x:A).B(x) \quad \Gamma \vdash a:A}{\Gamma \vdash f(a):B[a/x]}

Conversion rules for Pi types:

Γ,x:Ab:BΓa:AΓΠ β:λ(x:A).b(x)(a)= B[a/x]b[a/x]\frac{\Gamma, x:A \vdash b:B \quad \Gamma \vdash a:A}{\Gamma \vdash \Pi_\beta:\lambda(x:A).b(x)(a) =_{B[a/x]} b[a/x]}

Uniqueness rules for Pi types:

Γf:Π(x:A).B(x)ΓΠ η:f= Π(x:A).B(x)λ(x).f(x)\frac{\Gamma \vdash f:\Pi(x:A).B(x)}{\Gamma \vdash \Pi_\eta:f =_{\Pi(x:A).B(x)} \lambda(x).f(x)}

\subsection{Product types}

\subsection{Sigma types}

We use the negative presentation for sigma types.

Formation rule for Sigma types:

ΓA:U iΓ,x:AB:U iΓΣ(x:A).B(x):U i\frac{\Gamma \vdash A:U_i \quad \Gamma, x:A \vdash B:U_i}{\Gamma \vdash \Sigma(x:A).B(x):U_i}

Introduction rule for Sigma types:

Γ,x:Ab:BΓa:AΓb:B[a/x]Γ(a,b):Σ(x:A).B(x)\frac{\Gamma, x:A \vdash b:B \quad \Gamma \vdash a:A \quad \Gamma \vdash b:B[a/x]}{\Gamma \vdash (a, b):\Sigma(x:A).B(x)}

Elimination rules for Sigma types:

Γz:Σ(x:A).B(x)Γπ 1(z):AΓz:Σ(x:A).B(x)Γπ 2(z):B(π 1(z))\frac{\Gamma \vdash z:\Sigma(x:A).B(x)}{\Gamma \vdash \pi_1(z):A} \qquad \frac{\Gamma \vdash z:\Sigma(x:A).B(x)}{\Gamma \vdash \pi_2(z):B(\pi_1(z))}

Conversion rules for Sigma types:

Γ,x:Ab:BΓa:AΓΣ β 1:π 1(a,b)= AaΓ,x:Ab:BΓa:AΓΣ β 2:π 2(a,b)= Bπ 1(a,b)b\frac{\Gamma, x:A \vdash b:B \quad \Gamma \vdash a:A}{\Gamma \vdash \Sigma_{\beta_1}:\pi_1(a, b) =_A a} \qquad \frac{\Gamma, x:A \vdash b:B \quad \Gamma \vdash a:A}{\Gamma \vdash \Sigma_{\beta_2}:\pi_2(a, b) =_{B\pi_1(a, b)} b}

Uniqueness rules for Sigma types:

Γz:Σ(x:A).B(x)ΓΣ η:z= Σ(x:A).B(x)(π 1(z),π 2(z))\frac{\Gamma \vdash z:\Sigma(x:A).B(x)}{\Gamma \vdash \Sigma_\eta:z =_{\Sigma(x:A).B(x)} (\pi_1(z), \pi_2(z))}

\subsection{Sum types}

\subsection{Empty type}

\subsection{Unit type}

\subsection{Boolean type}

\subsection{Interval type}

\subsection{Function extensionality}

\subsection{Equivalences}

\subsection{Univalence}

\subsection{Natural numbers}

\section{References}

  • Homotopy Type Theory: Univalent Foundations of Mathematics, The Univalent Foundations Program, Institute for Advanced Study, 2013. (web, pdf)

  • Egbert Rijke, Introduction to Homotopy Type Theory, Cambridge Studies in Advanced Mathematics, Cambridge University Press (pdf) (478 pages)

  • Benno van den Berg, Martijn den Besten, Quadratic type checking for objective type theory (arXiv:2102.00905)

\section{External links}

Revision on September 30, 2022 at 19:34:29 by Anonymous?. See the history of this page for a list of all contributions to it.