Lectures onType Theory
Chapter 198
Chapter 198Core route

Higher Inductive Types and Homotopy-Initiality

Ordinary inductive definitions generate points. They cannot present the circle, the type generated from one point base and one specified loop loop:base=base, because the second generator belongs to an identity type of the object being defined. A higher inductive type permits exactly such path generators, and its eliminator requires data not only at points but also over those paths. The resulting computation problem is two-dimensional: point data must respect every specified generating path.

We work in the intensional base of chapter 26chapter 30 with univalence (definition 65.6). Point constructors compute judgmentally, whereas path-constructor equations are propositional. These rules extend the reduction signature, and no normalization theorem for that extension is proved here.

Remark 198.1 — Semantic status of the rule extension

The rules below are not justified merely by adjoining constants to the univalent theory of chapter 65: their eliminators and computation laws require semantic structure. Lumsdaine and Shulman prove that the local universe splitting of every excellent model category has strictly stable pushouts, natural numbers, W-types, propositional truncations, and a torus; “excellent” means simplicial, combinatorial, right proper, simplicially locally cartesian closed, with all monomorphisms cofibrations and cofibrations stable under limits [LS20]. Their hypotheses include simplicial sets. The same paper explains how 0-truncations, and hence exact set quotients, may be constructed from pushouts and natural numbers in the presence of a universe [LS20].

This is an existence theorem for the displayed HIT structure, not a normalization theorem. Nor do we infer a model of the combined univalence-plus-HIT signature from two separate model constructions: that combination additionally requires a chosen univalent universe closed under the HIT operations. Consequently this chapter uses the rules as an explicit extension and records the available semantic validation without claiming a relative-consistency theorem for the whole extension.

Point constructors and path constructors

An inductive type (chapter 28) is generated by point constructors: every element is built from the constructors, and a section of a family over the type is determined by its values on them. A higher inductive type admits, in addition, path constructors, which generate elements of its identity types. For a dependent suspension eliminator, the tempting meridian datum m(a):n=s(n:P[N/x], s:P[S/x]) is not even a type: its endpoints inhabit different fibers. Transport along merid(a) changes n into the fiber containing s, so the eliminator needs a dependent path, an identity after this transport into the target fiber. Equality between two path-constructor data then requires a dependent 2-path.

Definition 68.1 — Dependent paths and dependent 2-paths

Let Γ,x:AP type, let p:a0=Aa1, and let u:P[a0/x], v:P[a1/x].

  1. The type of dependent paths from u to v over p is the identity type obtained after transporting u into the fiber of v: (u=px.Pv):=(trpx.P(u)=P[a1/x]v), with tr as in chapter 30. For every dependent function f:x:AP, the operation apd of chapter 62 yields apdf(p):f(a0)=px.Pf(a1).

  2. For r:p=q (with p,q:a0=Aa1) there is, by identity induction on r, a path trr2(u):trpx.P(u)=P[a1/x]trqx.P(u) with trreflp2(u)refl. The type of dependent 2-paths over r between h:u=px.Pv and k:u=qx.Pv is (h=rx.Pk):=(h=trr2(u)k).

When the ambient judgment determines both the family and its bound variable, we drop the binder and write u=pPv.

Remark 68.2

Other definitions of u=pPv are possible — for instance u=P[a0/x]trp1x.P(v). They are equivalent: path induction on p reduces both types to u=P[a0/x]v and the comparison map to the identity. The chosen form is the one produced by apd, which is why we fix it.

Transport in the path families used by HIT eliminators reduces to concatenation and whiskering.

Lemma 68.3 — Path-algebra toolkit

Let p:a0=Aa1.

  1. For a:A and q:a=Aa0: trpz.a=Az(q)=qp.

  2. For a:A and q:a0=Aa: trpz.z=Aa(q)=p1q.

  3. For f,g:AB and q:f(a0)=Bg(a0): trpz.f(z)=Bg(z)(q)=apf(p)1qapg(p).

  4. (Constant families.) For ΓB type and u:B there is tcpB(u):trpz.B(u)=u with tcreflB(u)reflu.

  5. For f:AB: apdf(p)=tcpB(f(a0))apf(p).

  6. apidA(p)=p.

  7. For f:AB and g:BC: apg(apf(p))=apgf(p).

Proof of Lemma 68.3 — Path-algebra toolkit

Proof. For (i), identity induction on p reduces the left side to trrefla0z.a=z(q)q and the right side to qrefla0q; hence reflq closes the reflexivity case. For (iv), identity induction on p defines tcpB(u) with reflexivity branch reflu. Identity induction proves (v)–(vii): at prefl their two sides reduce, respectively, to refl=reflrefl, refl=refl, and refl=refl; the first is a unit law and the other two are reflexivity. In (ii) and (iii), the reflexivity case reduces to reflq=q after the judgmental right-unit computation, and the left-unit law of theorem 30.20 supplies that path. ◻

Convention 68.4 — Computation rules for higher constructors

For every higher inductive type of this book:

  1. the computation rule for each point constructor is a judgmental equality, as for the inductive types of chapter 28;

  2. the computation rule for each path constructor is propositional: the rules provide a term (written β with appropriate subscripts) inhabiting an identity type that relates apd of the eliminator to the supplied datum.

Remark 68.5

The asymmetry in convention 68.4 is deliberate. The operations ap and apd are not primitive syntax: they are terms defined by identity induction (chapter 30, chapter 62). A judgmental equality whose statement mentions them would make the deductive system depend on definitions made inside it. Making the point-constructor rules judgmental is unproblematic and also makes the generic path-constructor equation well typed: when a point constructor c has branch datum b and the eliminator satisfies f(c)b, both the image of a path constructor at c and its supplied path datum have endpoints at b, without a correcting path. Theories in which path constructors also compute judgmentally use a different signature with interval and Kan-composition operations [CCHM18, ABC^+21].

Remark 68.6 — Free generation

Generation is free generation. The path constructor loop of S1 is not the only element of base=S1base: the groupoid operations of theorem 30.20 produce looploop, loop1, and so on. No equations between constructors can be imposed; a would-be axiom p=q is instead a new generator of dimension one higher.

Remark 68.7 — Identity types acquire no new induction

A higher inductive definition equips the type with an induction principle; its identity types retain exactly the induction principle of definition 30.1 and gain no other. Consequently the identification of the paths of a higher inductive type — for example, that every element of base=S1base is a power of loop — requires an independent encode–decode proof; it is not part of the definition.

Exercise 68.1

★☆☆ Show that the three types trpx.P(u)=v, u=trp1x.P(v), and the inductive family of “paths over p” generated by refl over refl, are equivalent, by identity induction on p.

Exercise 68.2

★★☆ Define concatenation of dependent paths: for h:u=px.Pv and k:v=qx.Pw construct hk:u=pqx.Pw, and show that apdf preserves concatenation up to a dependent 2-path.

Exercise 68.3

★★☆ For f:AB and r:p=q with p,q:a0=Aa1, construct apf2(r):apf(p)=apf(q), and for dependent f construct apdf2(r):apdf(p)=rx.Papdf(q) (definition 68.1). Compute both on r:=refl.

The circle

The circle is the simplest higher inductive type with a path constructor of dimension one: a point and a loop at that point.

Definition 68.8 — The circle

The circle S1 is the higher inductive type generated by one point and one loop at that point. Its rules follow the order of convention 27.1. Premises recoverable by convention 26.14 are omitted. In the elimination and computation rules, x.P binds x in the motive, and f abbreviates λu.indS1(x.P;b;;u).

Γ ctx
ΓS1 type
1-form
Γ ctx
ΓS1:U0
1-form-
Γ ctx
Γbase:S1
1-intro_1
Γ ctx
Γloop:base=S1base
1-intro_2
Γ,x:S1P typeΓb:P[base/x]Γ:b=loopx.PbΓu:S1
ΓindS1(x.P;b;;u):P[u/x]
1-elim
Γ,x:S1P typeΓb:P[base/x]Γ:b=loopx.Pb
ΓindS1(x.P;b;;base)b:P[base/x]
1-comp_1
Γ,x:S1P typeΓb:P[base/x]Γ:b=loopx.Pb
ΓβloopS1(x.P;b;):apdf(loop)=(b=loopx.Pb)
1-comp_2

The conclusion of S1-comp2 is well typed: by S1-comp1, f(base)b, so apdf(loop):b=loopx.Pb. As always, each rule is accompanied by congruence rules for judgmental equality in all arguments (definition 26.22).

Remark 68.9 — Universe rules

The circle has the displayed code in U0, and lifting places it in every Ui. The parameterized rules used below have the following exact code levels (formation as a type follows by decoding): A:UiSuspA:Ui,A,B,C:Ui,f:CA,g:CBACB:Ui,A:UiA:Ui,A:UiA0:Ui,A:Ui,R:AAUjA/R:Umax(i,j). These are primitive code-formation clauses of this chapter’s extended signature, not consequences of the ordinary universe rules (definition 29.1).

Construction 68.10 — Recursion for the circle

For A a type, a:A, and p:a=Aa there is a map recS1(a;p):S1A with recS1(a;p)(base)aandaprecS1(a;p)(loop)=p.

Proof of Construction 68.10 — Recursion for the circle

Construction. Apply S1-elim with the constant motive x.A. The required loop datum is a dependent path a=loopx.Aa, and :=tcloopA(a)p is one, by lemma 68.3(iv). Write g:=λu.indS1(x.A;a;;u); then g(base)a by S1-comp1. Then tcloopA(a)apg(loop)=lemma68.3(v)apdg(loop)=S1comp2tcloopA(a)p, and cancelling tcloopA(a) on the left (theorem 30.20) gives apg(loop)=p. ◻

Remark 68.11 — The recursor pattern

Every higher inductive type of this chapter has a non-dependent recursor, derived from its eliminator by the argument of construction 68.10: constant motive, loop data corrected by lemma 68.3(iv), computation rules recovered by lemma 68.3(v) and cancellation. We use these recursors freely, with judgmental computation on point constructors and propositional computation (ap against the datum) on path constructors.

Theorem 68.12 — is not trivial

Assuming univalence, ¬(loop=reflbase). Consequently S1 is not a set (definition 66.2).

Proof of Theorem 68.12 — is not trivial

Proof. Suppose e:loop=reflbase. Let A be a type, a:A, and p:a=Aa; put g:=recS1(a;p). Then p=apg(loop)=apg(reflbase)refla, using construction 68.10, congruence of the function apg:(base=base)(gbase=gbase) applied to e, and the computation of ap on refl (chapter 30). Thus every loop in every type is trivial; for parallel p,q:x=Ay the loop pq1 is then refl, whence p=q by theorem 30.20. So every type is a set, contradicting theorem 65.22 in the presence of definition 65.6. Applying the first claim: were S1 a set, loop=reflbase would hold, which we have just refuted. ◻

Theorem 68.13 — Universal property of the circle

For every type A the map Φ:(S1A)x:Ax=Ax,Φ(f):=(f(base),apf(loop)), is an equivalence (definition 62.21).

Proof of Theorem 68.13 — Universal property of the circle

Proof. Define Ψ(a,p):=recS1(a;p); we show Ψ is a quasi-inverse of Φ, which suffices by chapter 62.

ΦΨid. For (a,p) we have Φ(Ψ(a,p))(a,aprecS1(a;p)(loop)), the first component being judgmental by construction 68.10. By theorem 62.30 it suffices to give a path in the fiber over refla, i.e. aprecS1(a;p)(loop)=p, which is the computation rule of construction 68.10.

ΨΦid. Let f:S1A and put g:=recS1(f(base);apf(loop)). By function extensionality (theorem 65.18) it suffices to show x:S1g(x)=Af(x), which we prove by S1-elim with motive x.g(x)=Af(x). At base: g(base)f(base), take refl. Over loop we must give refl=loopx.g(x)=f(x)refl; by lemma 68.3(iii) its type is equivalent to apg(loop)1reflapf(loop)=refl, which by theorem 30.20 reduces to apg(loop)=apf(loop) — the computation rule of construction 68.10. ◻

Definition 198.15 — Circle algebras and homotopy-initiality

Fix universe levels ij. An i-small circle algebra is a triple A=(A,a,p) with A:Ui, a:A, and p:a=a. For an i-small X=(X,x,q) and a j-small A=(A,a,p) put AlgS1(X,A):=f:XA(f(x),apf(q))=(a,p). The algebra X is j-homotopy-initial when AlgS1(X,A) is contractible for every j-small circle algebra A. The quantification over such A is metatheoretic; this definition does not assert that the type of all j-small algebras itself lies in Uj.

Theorem 198.16 — Induction and homotopy-initiality

For each fixed ij and each i-small circle algebra X, its dependent induction principle for j-small motives, with propositional computation on the loop, is equivalent to j-homotopy-initiality. In particular, (S1,base,loop) is j-homotopy-initial for every target level j admitting the displayed eliminator.

Proof of Theorem 198.16 — Induction and homotopy-initiality

Proof. The equivalence is the circle specialization of Sojakova’s main theorem for W-suspension algebras [Soj14]. A W-suspension has point constructors indexed by a type C and path constructors between specified endpoint maps f,g:BC; the circle is the instance with one point index and one loop index whose two endpoint maps are equal. The source works in univalent intensional type theory with Π-, Σ-, identity, and universe types; in particular it uses function extensionality, which is available here from univalence by theorem 65.18. It states, at every target universe not smaller than the carrier universe, an equivalence between dependent induction, recursion plus coherent uniqueness, and contractibility of every algebra-morphism type. Specialize its parameter types to one point generator and one loop generator; its algebra-morphism type is exactly definition 198.15. Thus the import has the same propositional loop-computation strength as S1-comp2 and assumes neither judgmental path computation nor a general HIT schema.

For the canonical circle, the comparison map Φ of theorem 68.13 is an equivalence. Its fiber over (a,p) is definitionally the type AlgS1((S1,base,loop),(A,a,p)). By definition 62.21 every such fiber is contractible, which proves the last claim locally. ◻

Remark 68.14

Theorem 68.13 identifies maps out of S1, not the paths inside it: computing Ω(S1,base) requires a separately constructed family over the circle and an encode–decode proof.

Exercise 68.4

★★☆ (Uniqueness principle.) Let f,g:S1A, p:f(base)=Ag(base), and suppose apf(loop)p=papg(loop). Construct a homotopy fg by circle induction, using lemma 68.3(iii).

Exercise 68.5

★★☆ Construct an element of x:S1x=S1x distinct from λx.reflx. Hint: send base to loop; the datum over loop has type loop1looploop=loop by lemma 68.3(iii). Conclude via theorem 68.12.

Exercise 68.6

★☆☆ For k:N define loopk by iterated concatenation and the map dk:=recS1(base;loopk):S1S1. Show apdk(loopm)=loopkm for all m:N.

The interval

The interval has two points and a path between them; it is equivalent to 1, but its judgmental computation rules are not.

Definition 68.15 — The interval

The rules of the interval I; premises per convention 26.14, and f abbreviates λu.indI(x.P;b0;b1;s;u).

Γ ctx
ΓI type
I-form
Γ ctx
Γ0I:I
I-intro_1
Γ ctx
Γ1I:I
I-intro_2
Γ ctx
Γseg:0I=I1I
I-intro_3
Γ,x:IP typeΓb0:P[0I/x]Γb1:P[1I/x]Γs:b0=segx.Pb1Γu:I
ΓindI(x.P;b0;b1;s;u):P[u/x]
I-elim
ΓindI(x.P;b0;b1;s;0I)b0:P[0I/x]
I-comp_1
ΓindI(x.P;b0;b1;s;1I)b1:P[1I/x]
I-comp_2
ΓβsegI(x.P;b0;b1;s):apdf(seg)=(b0=segx.Pb1)s
I-comp_3

The suppressed premises of the computation rules are those of I-elim.

Theorem 68.16

isContr(I).

Proof of Theorem 68.16

Proof. We construct h:x:Ix=I1I by I-elim with motive x.x=I1I: take b0:=seg and b1:=refl1I; the required datum s has type trsegx.x=1I(seg)=refl, which by lemma 68.3(ii) is equivalent to seg1seg=refl — the inverse law of theorem 30.20. Then 1I together with λx.h(x)1 exhibits contractibility. ◻

Theorem 68.17 — Function extensionality from the interval

Let f,g:AB and H:x:Af(x)=Bg(x). Then f=ABg.

Proof of Theorem 68.17 — Function extensionality from the interval

Proof. For each x:A let H~x:=recI(f(x);g(x);H(x)):IB (remark 68.11), so that H~x(0I)f(x) and H~x(1I)g(x). Define k:=λi.λx.H~x(i):I(AB). By the point computation rules and the η-rule of definition 27.2, k(0I)f and k(1I)g. Hence apk(seg):f=ABg. ◻

Remark 68.18

By theorem 68.16 the interval is equivalent to 1, yet theorem 68.17 is not provable from 1: the proof uses the judgmental equalities k(0I)f and k(1I)g, which the equivalence does not transport. The interval is thus a first instance of a phenomenon central to Part IV: judgmental structure carries information invisible to the identity type; the related base-theory function-extensionality boundary is recorded, without an exact transfer theorem, in remark 111.89.

Exercise 68.7

★★☆ State and prove the universal property of the interval: for every type A, the map (IA)x:Ay:Ax=Ay sending f to (f(0I),(f(1I),apf(seg))) is an equivalence. Conclude theorem 68.16 again, using the contractibility of singletons (chapter 30).

Exercise 68.8

★★☆ Strengthen theorem 68.17: show that the map happlyf,g of chapter 30 is an equivalence for all f,g, i.e. derive the full function extensionality axiom (as in theorem 65.18) from the interval. Hint: first show that the term produced by theorem 68.17 is a section of happly up to homotopy.

Suspensions and spheres

The suspension of A turns points of A into paths; iterating it from 2 produces the spheres of every dimension.

Definition 68.19 — Suspension

For a type A, the rules of SuspA; premises per convention 26.14, and f abbreviates λu.indSuspA(x.P;n;s;m;u).

ΓA type
ΓSuspA type
Susp-form
ΓA type
ΓN:SuspA
Susp-intro_1
ΓA type
ΓS:SuspA
Susp-intro_2
Γa:A
Γmerid(a):N=SuspAS
Susp-intro_3
Γ,x:SuspAP typeΓn:P[N/x]Γs:P[S/x]Γm:a:An=merid(a)x.PsΓu:SuspA
ΓindSuspA(x.P;n;s;m;u):P[u/x]
Susp-elim
ΓindSuspA(x.P;n;s;m;N)n:P[N/x]
Susp-comp_1
ΓindSuspA(x.P;n;s;m;S)s:P[S/x]
Susp-comp_2
Γa:A
ΓβmeridSusp(x.P;n;s;m;a):apdf(merid(a))=(n=merid(a)x.Ps)m(a)
Susp-comp_3

The suppressed premises of the computation rules are those of Susp-elim.

Theorem 68.20

Susp2S1.

Proof of Theorem 68.20

Proof. Define f:Susp2S1 by recursion (remark 68.11): f(N):=base, f(S):=base, apf(merid(ff))=loop, apf(merid(tt))=reflbase. The first guess for the return map would send loop to merid(ff), but this is ill typed: merid(ff):N=S is not a loop at N. Closing the meridian with the inverse of a second one produces the required loop. Define g:S1Susp2 by g:=recS1(N;merid(ff)merid(tt)1).

gfid. By Susp-elim with motive x.g(f(x))=Susp2x: at N take reflN (both sides are N judgmentally); at S take merid(tt):N=S. Over merid(y) (y:2) the required dependent path reduces, by lemma 68.3(iii, vi, vii) and the groupoid laws, to apg(apf(merid(y)))1merid(y)=merid(tt). By 2-induction (definition 28.7): for yff, apg(apf(merid(ff)))=apg(loop)=merid(ff)merid(tt)1, and (merid(ff)merid(tt)1)1merid(ff)=merid(tt) by theorem 30.20; for ytt, apg(apf(merid(tt)))=apg(refl)refl, and refl1merid(tt)=merid(tt).

For the other composite, circle induction uses reflbase at the basepoint. Its loop coherence reduces, by lemma 68.3(iii), to the two recursor computations apf(merid(ff))=loop and apf(merid(tt))=refl followed by the right-unit and inverse laws. Thus fgid. This complete calculation is also HoTT Book Lemma 6.5.1 [Uni13], at the same suspension and circle signature. The two homotopies exhibit a quasi-inverse, hence an equivalence by theorem 62.27. ◻

Definition 68.21 — Spheres

S0:=2 and Sn+1:=SuspSn for n:N. By theorem 68.20 this agrees, in dimension one, with definition 68.8 up to equivalence, and we use the two interchangeably.

Definition 68.22 — Pointed types, based maps, loop spaces

Use the pointed types and iterated loop spaces of definition 62.15, leaving basepoints implicit where possible. For pointed A, B, define Map(A,B):=f:ABf(a0)=Bb0. S0 is pointed at tt, and SuspA at N.

Theorem 68.23 — Loop–suspension adjunction

For pointed types A, B there is an equivalence Map(SuspA, B)Map(A, ΩB).

Proof of Theorem 68.23 — Loop–suspension adjunction

Proof. Write a pointed map F:SuspAB as (F,r), where r:F(N)=b0, and put pa:=apF(merid(a)). Then Φ(F,r)(a):=r1papa01r:b0=b0. At a0 the middle path is pa0pa01, so the inverse and unit laws give the required path Φ(F,r)(a0)=reflb0. Conversely, from a pointed loop map (g,s), with g:A(b0=b0) and s:g(a0)=reflb0, suspension recursion gives Ψ(g,s)(N)b0,qquadΨ(g,s)(S)b0,qquadapΨ(g,s)(merid(a))=g(a), pointed by reflexivity.

It remains to prove both round trips, including the two basepoint components. Suspension recursion and uniqueness give the equivalence (SuspAB)n:Bz:Ba:An=z. The forward map sends F to (F(N),F(S),λa.apF(merid(a))); the reverse map is suspension recursion. One composite computes on the two points and every meridian. For the other, function extensionality reduces equality of maps to suspension induction, whose point cases are reflexivity and whose meridian case is the recursor equation.

Including the path r:n=b0 and reassociating dependent sums gives Map(SuspA,B)n:Br:n=b0z:Ba:An=zz:Ba:Ab0=z. For the second equivalence, path induction on r contracts the singleton n:Bn=b0; before contraction the path family is transported by par1pa. From (z,p) in the last type put q:=pa0,g(a):=paq1. The inverse and unit laws give g(a0)=reflb0, so (g,s) is a based map AΩB. Conversely, (g,s) is sent to (b0,λa.g(a)).

These last maps are inverse without an imported coherence theorem. Starting with (z,p), the first component of the round trip is connected to z by q:b0=z; after transport along q, path associativity, the inverse law, and the unit law identify the transported factor (paq1)q with pa for every a. Function extensionality and the dependent-pair path rule give the required equality. Starting with (g,s), path induction on s:g(a0)=refl reduces the other composite to g(a)refl1=g(a) and reflexivity in the basepoint component. Tracing the two reassociations recovers exactly the displayed Φ and Ψ. This is the local calculation summarized by HoTT Book Lemma 6.5.4 [Uni13]; it uses only Π-, Σ-, and identity types and the suspension recursor and uniqueness principle. ◻

Corollary 68.24

For every pointed type B and n:N, Map(Sn,B)ΩnB.

Proof of Corollary 68.24

Proof. Induction on n. For n0: Map(2,B)B, since a based map out of 2 pointed at tt is determined by its value at ff (definition 28.7). The step is theorem 68.23. ◻

Remark 68.25

Corollary 68.24 identifies maps out of a suspension; it does not construct the full suspension–loop adjunction or calculate higher homotopy groups of spheres.

Exercise 68.9

★☆☆ Show Susp02 and Susp1I; conclude that Susp1 is contractible.

Exercise 68.10

★★☆ Reconstruct the circle-induction coherence used in theorem 68.20: compute apf(apg(loop))=apf(merid(ff))apf(merid(tt))1=loop. Identify the two unit-law 2-paths that finish the induction datum.

Exercise 68.11

★★☆ For h:AB construct Susph:SuspASuspB by recursion, and show Susp(idA)id and Susp(kh)SuspkSusph.

Pushouts

Limits of types — products, pullbacks — are constructed from Σ and identity types; colimits beyond coproducts require identifying elements coming from different types, which is exactly what a path constructor provides. The pushout is the basic case.

Definition 68.26 — Pushouts

Let ΓA type, ΓB type, ΓC type and Γf:CA, Γg:CB (a span). The rules of the pushout ACB (the maps f, g are suppressed in the notation); premises per convention 26.14, and e abbreviates λu.ind(x.P;dA;dB;dC;u). The injections inA,inB below are pushout constructors; inl,inr remain reserved for the coproducts of definition 28.17.

Γf:CAΓg:CB
ΓACB type
Po-form
Γa:A
ΓinA(a):ACB
Po-intro_1
Γb:B
ΓinB(b):ACB
Po-intro_2
Γc:C
Γglue(c):inA(f(c))=ACBinB(g(c))
Po-intro_3
Γ,x:ACBP typeΓdA:a:AP[inA(a)/x]ΓdB:b:BP[inB(b)/x]ΓdC:c:CdA(f(c))=glue(c)x.PdB(g(c))Γu:ACB
Γind(x.P;dA;dB;dC;u):P[u/x]
Po-elim
Γa:A
Γind(x.P;dA;dB;dC;inA(a))dA(a):P[inA(a)/x]
Po-comp_1
Γb:B
Γind(x.P;dA;dB;dC;inB(b))dB(b):P[inB(b)/x]
Po-comp_2
Γc:C
Γβglue(x.P;dA;dB;dC;c):apde(glue(c))=dC(c)
Po-comp_3

For C:=0 there are no glue constructors, so the displayed eliminator is exactly coproduct elimination. Exchanging the two eliminators gives an equivalence with A+B under which inA,inB correspond to inl,inr.

Definition 68.27 — Cocones

For a span AfCgB and a type E, the type of cocones under the span with vertex E is cocone(E):=i:AEj:BEc:Ci(f(c))=Ej(g(c)). The constructors form the cocone (inA,(inB,glue)):cocone(ACB).

Theorem 68.28 — Universal property of the pushout

For every type E the map Φ:(ACBE)cocone(E),Φ(t):=tinA, tinB, λc.apt(glue(c)), is an equivalence. The displayed triple abbreviates the nested dependent pair used in definition 68.27.

Proof of Theorem 68.28 — Universal property of the pushout

Proof. Given a cocone (i,j,h), the recursor (remark 68.11) yields Ψ(i,j,h):ACBE with Ψ(i,j,h)(inA(a))i(a), Ψ(i,j,h)(inB(b))j(b), and apΨ(i,j,h)(glue(c))=h(c).

ΦΨid. The first two components of Φ(Ψ(i,j,h)) are λa.i(a) and λb.j(b), i.e. i and j judgmentally by the η-rule (definition 27.2). For the third, the recursor’s computation rule gives apΨ(i,j,h)(glue(c))=h(c) for each c, hence λc.apΨ(i,j,h)(glue(c))=h by function extensionality (theorem 65.18); the triple equality follows by theorem 62.30, because transport along each of the first two reflexivity components reduces to the identity.

ΨΦid. Let t:ACBE and s:=Ψ(Φ(t)). By function extensionality it suffices to prove x:ACBs(x)=Et(x), by Po-elim with motive x.s(x)=Et(x). On inA(a) and inB(b) both sides are judgmentally equal; take refl. Over glue(c), by lemma 68.3(iii) and theorem 30.20 the datum reduces to aps(glue(c))=apt(glue(c)), which is the computation rule of the recursor, since the glue-component of Φ(t) is λc.apt(glue(c)). ◻

Example 68.29 — The standard cell constructions

Let A, B be types, a0:A, b0:B where basepoints are required, and k:AB.

  1. Suspension. The pushout of 1A1 is equivalent to SuspA: the two unit points become north and south and each glue path becomes a meridian; the two induction principles prove the round trips.

  2. Cofiber (mapping cone). The pushout of 1AkB is the cofiber cof(k); for B:=1 one obtains the cone CA. It is contractible: take the unit point as center, use the glue path to contract every A-point, and apply pushout induction.

  3. Wedge. The pushout of Aa01b0B is the wedge AB.

  4. Join. The pushout of Apr1A×Bpr2B is the join AB; e.g. S0S0S1 by Boolean case analysis on the two endpoint families: the join eliminator reduces to that of SuspS0.

Each inherits a universal property from theorem 68.28 by specializing the span.

Remark 68.30 — Pushouts do not preserve sets

1 and S0 are sets, yet the pushout of 1S01 is SuspS0S1, which is not a set (theorem 68.12).

Exercise 68.12

★☆☆ Show that A0B (over the unique maps out of 0) satisfies the rules of the coproduct A+B of chapter 28, and that the two types are equivalent.

Exercise 68.13

★☆☆ Show that CA:=1AA (over idA and the unique map A1) is contractible.

Exercise 68.14

★★☆ Construct an equivalence SuspA1A1 by exchanging elimination principles, following the method of theorem 68.20.

Exercise 68.15

★★☆ Show S0S0S1. Hint: a map out of the join is determined by two maps and a square of coherences; compare both sides with SuspS0.

Truncations as higher inductive types

chapter 66 introduced the propositional truncation by rules (definition 66.33); higher inductive types reconstruct it, and its 0-dimensional analogue, as instances of a single mechanism.

Definition 68.31 — Propositional truncation as a HIT

For a type A, the higher inductive type A has the rules below. Write f:=λu.indA(x.P;d;e;u).

ΓA type
ΓA type
Tr-form
Γa:A
Γ|a|:A
Tr-intro_1
Γu:AΓv:A
Γsq(u,v):u=Av
Tr-intro_2
Γ,x:AP typeΓd:a:AP[|a|/x]Γe:u:Av:Aw:P[u/x]z:P[v/x]w=sq(u,v)x.PzΓu:A
Γf(u):P[u/x]
Tr-elim
Γ,x:AP typeΓd:a:AP[|a|/x]Γe:u:Av:Aw:P[u/x]z:P[v/x]w=sq(u,v)x.PzΓa:A
Γf(|a|)d(a):P[|a|/x]
Tr-comp_1
Γ,x:AP typeΓd:a:AP[|a|/x]Γe:u:Av:Aw:P[u/x]z:P[v/x]w=sq(u,v)x.PzΓu:AΓv:A
ΓβsqTr(x.P;d;e;u,v):apdf(sq(u,v))=e(u,v,f(u),f(v))
Tr-comp_2

The second constructor is recursive: its inputs range over the type being defined, as the inputs of suc range over N (definition 28.21) — except that here they may also be paths.

Theorem 68.32

The type A of definition 68.31 satisfies the specification of definition 66.33:

  1. isProp(A);

  2. for every family P over A with x:AisProp(P(x)) and every d:a:AP(|a|) there is d^:x:AP(x) with d^(|a|)d(a).

Proof of Theorem 68.32

Proof. (i) is the constructor sq, read against the definition of isProp in definition 66.2. For (ii), apply Tr-elim with the given P and d; the datum e requires, for u,v,w:P(u),z:P(v), a dependent path w=sq(u,v)Pz, i.e. an identification trsq(u,v)P(w)=z in P(v) — which exists because P(v) is a proposition. The computation rule is Tr-comp1. ◻

Definition 68.33 — Set truncation

For a type A, the higher inductive type A0 is generated by

  1. a point constructor |a|0:A0 for a:A;

  2. a 2-path constructor: for u,v:A0 and p,q:u=A0v, an identification sq0(p,q):p=q.

Formation preserves the universe level of A, and the two introductions are |a|0 and sq0(p,q) with the endpoints stated above. The elimination and computation rules are given in remark 68.34, lemma 68.36.

Remark 68.34 — The primitive eliminator

The chapter adopts the following exact induction rule into set-valued families, together with its point computation rule:

Γ,x:A0P typeΓσ:x:A0isSet(P)Γd:a:AP[|a|0/x]Γu:A0
ΓindA0(x.P;d;u):P[u/x]
Tr_0-elim
Γ,x:A0P typeΓσ:x:A0isSet(P)Γd:a:AP[|a|0/x]Γa:A
ΓindA0(x.P;d;|a|0)d(a):P[|a|0/x]
Tr_0-comp

This restricted eliminator is sufficient for every use below. A full higher-inductive eliminator would instead require endpoint-indexed dependent 2-path data over sq0 and a propositional computation rule for that constructor. We do not leave that larger datum hidden behind a symbol or use it later.

Lemma 68.35

isSet(A0).

Proof of Lemma 68.35

Proof. The constructor sq0 is precisely the statement of isSet in definition 66.2. ◻

Lemma 68.36 — Induction into sets

Let P be a family over A0 with x:A0isSet(P(x)), and let d:a:AP(|a|0). Then there is d^:x:A0P(x) with d^(|a|0)d(a).

Proof of Lemma 68.36 — Induction into sets

Proof. This is precisely Tr0-elim, with σ the assumed proof that every fiber is a set; its point equation is Tr0-comp. ◻

Theorem 68.37 — Universal property of set truncation

For every set B, precomposition with ||0:AA0 is an equivalence (A0B)(AB).

Proof of Theorem 68.37 — Universal property of set truncation

Proof. Lemma 68.36 with the constant family B gives the right-to-left map gg^, and g^(|a|0)g(a) shows it is a section of precomposition (using η, definition 27.2). For the retraction, let t:A0B and set t:=t||0^; the family x.t(x)=Bt(x) is prop-valued (paths in the set B), hence set-valued, so lemma 68.36 applies: on points, t(|a|0)t(|a|0), take refl. By function extensionality, t=t. ◻

Exercise 68.16

★★☆ Show that any two types satisfying the specification of theorem 68.32 for the same A are equivalent, by the method of theorem 68.13.

Exercise 68.17

★☆☆ Show that if A is a set then ||0:AA0 is an equivalence.

Exercise 68.18

★★☆ Let S be generated by points a, b and paths p,q:a=Sb (write out its rules on the pattern of definition 68.8). Construct an equivalence SS1.

Set quotients

The quotient of a set by a relation is the colimit that classical mathematics uses most; a higher inductive type constructs it directly, with the set-truncation constructor built in.

Definition 68.38 — Set quotients

Let ΓA:Uk, let ΓR:AAUi, and let Γh:a:Ab:AisProp(Rab) (R is a mere relation). The set quotient A/R is the higher inductive type generated by

  1. a point constructor q:AA/R;

  2. a path constructor: for a,b:A and s:Rab, a path rel(s):q(a)=A/Rq(b);

  3. the set-truncation constructor: for u,v:A/R and p,q:u=A/Rv, an identification sq0(p,q):p=q.

As official elimination we display the induction principle for set-valued motives, on the same footing as Tr0-elim. Write e:=λu.indA/R(x.P;d;d;u). Put PR(a,b):=isProp(Rab),Rel(R):=a,b:APR(a,b).

ΓR:AAUiΓh:Rel(R)
ΓA/R type
Q-form
ΓA:UkΓR:AAUiΓh:Rel(R)
ΓA/R:Umax(i,k)
Q-form-
Γ,x:A/RP typeΓσ:x:A/RisSet(P)Γd:a:AP[q(a)/x]Γd:a:Ab:As:Rabd(a)=rel(s)x.Pd(b)Γu:A/R
Γe(u):P[u/x]
Q-elim
Γ,x:A/RP typeΓσ:x:A/RisSet(P)Γd:a:AP[q(a)/x]Γd:a:Ab:As:Rabd(a)=rel(s)x.Pd(b)Γa:A
Γe(q(a))d(a):P[q(a)/x]
Q-comp

No computation rule for rel is displayed: the equality apde(rel(s))=d(a,b,s) is automatic, both sides being parallel dependent paths into the set P[q(b)/x]. By the constructor sq0, A/R is a set (lemma 68.35).

Lemma 68.39 — Surjectivity of the quotient map

The map q:AA/R is surjective: for every u:A/R, the proposition a:Aq(a)=A/Ru holds (chapter 66).

Proof of Lemma 68.39 — Surjectivity of the quotient map

Proof. By Q-elim: the motive is prop-valued (theorem 68.32(i)), hence set-valued; on points take |(a,refl)|. For s:Rab, both endpoints required by d(a,b,s) inhabit the same propositional fiber; its proposition witness identifies them, exactly as in the construction in theorem 68.32(ii). ◻

Theorem 68.40 — Universal property of the set quotient

For every set B, put D(k):=a,b:ARabk(a)=Bk(b). The map Φ:(A/RB)k:ABD(k),Φ(t):=(tq,λabs.apt(rel(s))) is an equivalence.

Proof of Theorem 68.40 — Universal property of the set quotient

Proof. Given (k,c), Q-elim with constant motive B, points d:=k, and datum d(a,b,s):=tcrel(s)B(k(a))c(a,b,s) (lemma 68.3(iv)) yields Ψ(k,c):A/RB with Ψ(k,c)(q(a))k(a).

ΦΨid. The first component of Φ(Ψ(k,c)) is k by Q-comp and η (definition 27.2). The second components are elements of a proposition: each type k(a)=Bk(b) is a proposition because B is a set, and propositions are closed under Π by theorem 66.16. Hence the pair equality follows from theorem 62.30.

ΨΦid. For t:A/RB put t:=Ψ(Φ(t)). The family x.t(x)=Bt(x) is prop-valued, hence set-valued; by Q-elim it suffices to note t(q(a))t(q(a)), with the d datum automatic as in lemma 68.39. Conclude by function extensionality (theorem 65.18). ◻

Theorem 68.41 — Effectiveness

Let R be a mere equivalence relation: reflexive (ρ:a:ARaa), symmetric, and transitive. Then for all a,b:A, Rab(q(a)=A/Rq(b)).

Proof of Theorem 68.41 — Effectiveness

Proof. By the encode–decode method (theorem 62.35). Write PropUi:=X:UiisProp(X). The naive target code0:A/RA/RUi,code0(q(a),q(b)):=Rab, cannot be defined by Q-elim: its constant motive Ui is not set-valued. Restricting the codomain to propositions repairs precisely this premise. Full univalence, through proposition 65.28(ii), and theorem 66.25 show that PropUi is a set.

Codes. Define code:A/RA/RPropUi by two applications of Q-elim. Inner (fixing a:A): the motive is constant at the set PropUi; on points, code(q(a),q(b)):=(Rab, hab); for s:Rbb, the identification (Rab,--)=(Rab,--) holds by propositional extensionality, since transitivity and symmetry give RabRab. Outer: the motive x.(A/RPropUi) is set-valued (functions into a set form a set by theorem 66.16); the datum for s:Raa follows pointwise — by Q-elim with prop-valued motive — again from propositional extensionality and the equivalence-relation laws.

Encode. By Q-elim with prop-valued motive x.code(x,x) (on points, ρ), obtain c0:x:A/Rcode(x,x); then encodex,y(p):=trpcode(x,)(c0(x)).

Decode. By two applications of Q-elim with prop-valued motive (x=A/Ry is a proposition, A/R being a set), it suffices to give decodeq(a),q(b):=rel:Rabq(a)=A/Rq(b).

Both code(x,y) and x=A/Ry are propositions, and encode and decode are maps between them in both directions; two propositions that imply each other are equivalent (lemma 66.7(2)). Instantiating at x:=q(a), y:=q(b), where code(q(a),q(b))Rab, gives the theorem. ◻

Lemma 68.42 — Canonical representatives

Let A be a set, R a mere relation on A, and r:AA a map with I:a:Ar(r(a))=Ar(a) and ε:a:Ab:A(r(a)=Ar(b))Rab. Then A/Ra:Ar(a)=Aa.

Proof of Lemma 68.42 — Canonical representatives

Proof. Write Ar:=a:Ar(a)=Aa and qr(a):=(r(a),I(a)):Ar. Since A is a set, each fiber r(a)=Aa is a proposition, so Ar is a set and, by theorem 62.30, two elements of Ar are equal as soon as their first components are; in particular qr(a)=(a,p) for every (a,p):Ar.

Define φ:A/RAr by Q-elim (constant set-valued motive Ar): on points φ(q(a)):=qr(a); for s:Rab, ε1 gives r(a)=r(b), hence qr(a)=qr(b) by the first-component criterion. Define ψ:ArA/R by ψ(a,p):=q(a).

ψφid: by Q-elim with prop-valued motive, on points we need q(r(a))=A/Rq(a), which is rel(ε(r(a),a)(I(a))), since I(a):r(r(a))=r(a).

φψid: for (a,p), φ(ψ(a,p))qr(a)=(a,p) by the first-component criterion. ◻

Construction 198.46 — Internal natural-number arithmetic

The recursor of definition 28.21 defines multiplication and order inside the type theory: m00,msuc(k)mk+m,monus(a,0)a,monus(0,suc(b))0,monus(suc(a),suc(b))monus(a,b),ab:=d:Na+d=b,a<b:=suc(a)b. The addition in these equations is construction 28.23. Simultaneous recursion on a,b defines cmp(a,b):(a<b)+(a=b)+(b<a) by the four clauses abcmp(a,b)00eq(refl)0suc(b)lt(0<suc(b))suc(a)0gt(0<suc(a))suc(a)suc(b)mapSuc(cmp(a,b)). Here mapSuc maps the three alternatives using successor congruence and injectivity. The zero inequalities are obtained by induction on the nonzero argument. Thus cmp is a decidable trichotomy in the object theory, not an external comparison oracle.

Lemma 198.47 — Internal arithmetic laws used by division

The operations of construction 198.46 satisfy:

  1. addition is associative and commutative, and a+c=b+c implies a=b;

  2. (q+q)n=qn+qn, 0n=0, and suc(d)n=n+dn;

  3. r<n implies qn+r<qn+n;

  4. qn+n(q+suc(d))n+r;

  5. x<suc(y) implies xy;

  6. x<y and yx cannot both hold; and

  7. ab and a<b are propositions.

Proof of Lemma 198.47 — Internal arithmetic laws used by division

Proof. Associativity, commutativity, and cancellation follow by induction on the last addend; the successor case of cancellation reduces suc(a+c)=suc(b+c) by successor injectivity before applying the induction hypothesis. Induction on n proves the three multiplication equations. For distributivity, its successor clause is (q+q)n+(q+q)=(qn+q)+(qn+q), after reassociation and commutation; the clauses for 0n and suc(d)n=n+dn use the same calculation with q=0 and q=1, respectively.

If r<n is witnessed by t with suc(r)+t=n, then the same t witnesses suc(qn+r)+t=qn+n, which proves clause (3). Clause (2) rewrites (q+suc(d))n+r=(qn+n)+(dn+r), so dn+r witnesses clause (4). For clause (5), a witness t of x<suc(y) satisfies suc(x)+t=suc(y); the induction equation suc(x)+t=suc(x+t) and successor injectivity give x+t=y, the required witness of xy. If x<y and yx have witnesses t,u, their equations give suc(x)+t+u=x; induction on x and successor disjointness rule this out. Finally, two witnesses d,d of ab satisfy a+d=a+d and hence d=d by cancellation. Equality proofs in N are propositions by theorem 62.39; the dependent-sum equality rule then makes ab a proposition. Since a<b:=suc(a)b, this conclusion instantiated at suc(a) and b makes a<b a proposition. ◻

Lemma 198.48 — Internal division with remainder

Let n:N and e:suc(0)n. For every a:N there is divremn,e(a):q:Nr:N(a=qn+r)×(r<n). If Qn+r=Qn+r with r<n and r<n, then r=r.

Proof of Lemma 198.48 — Internal division with remainder

Proof. The witness e gives 0<n. Define divremn,e by primitive recursion on a. Induction on n gives zn:0n=0; together with the additive unit laws it gives E0:0=0n+0. At zero return (0,0,E0,0<n). Given (q,r,E,h) for a, inspect cmp(suc(r),n). The alternative n<suc(r) gives nr by part (5) of lemma 198.47, contradicting h:r<n by part (6). The remaining clauses are suc(r)<n:(q,suc(r),E<,),E<:suc(qn+r)=qn+suc(r),suc(r)=n:(suc(q),0,E=,),E=:suc(qn+r)=qn+n=suc(q)n+0. The dashes are the comparison proof and 0<n, respectively; E< and E= are obtained by rewriting E with the addition and multiplication equations of lemma 198.47. Hence every branch returns all four components of the dependent sum.

For uniqueness, apply trichotomy to Q,Q. If Q=Q, cancellation of Qn gives r=r. If Q=Q+suc(d), the right side is at least Qn+n, because Qn+r=Qn+suc(d)n+r, whereas r<n makes the left side Qn+r strictly smaller than Qn+n; this contradicts the assumed equality. The case Q=Q+suc(d) is symmetric. Parts (3) and (4) of lemma 198.47 give the two bounds, and part (6) gives the contradiction. Thus no external order fact is used. ◻

Lemma 198.49 — Division remainder and congruence

For n:N and e:suc(0)n, put Rn(a,b):=k:Nl:Na+kn=Nb+ln. There is a function remn:NN with remn(a)<n, remn(remn(a))=remn(a), and remn(a)=Nremn(b)Rn(a,b), Moreover Rn is a mere equivalence relation.

Proof of Lemma 198.49 — Division remainder and congruence

Proof. Rn is proposition-valued by truncation. Reflexivity uses k=l=0, symmetry exchanges k,l, and transitivity adds the two witnesses and cancels the common middle summand after reassociation.

Let (qa,ra,Ea,ha):=divremn,e(a) and define remn(a):=ra. If a<n, the left-zero and additive-unit paths give Ea:a=0n+a. Thus (0,a,Ea,a<n) is another division witness, so uniqueness in lemma 198.48 gives remn(a)=a. Applying this fact at a=remn(b) proves idempotence.

If the remainders agree, the maintained equations give a+qbn=b+qan, hence a generator of Rn(a,b). Conversely eliminate the truncation into the proposition that the remainders agree. For a witness a+kn=b+ln, substitute the two maintained decompositions and reassociate to (qa+k)n+ra=(qb+l)n+rb. The uniqueness clause of lemma 198.48, with quotients qa+k and qb+l, gives ra=rb. Thus the two implications are inverse because both sides are propositions, by lemma 66.7(2). ◻

Example 68.43 — The cyclic sets /n

Fix n:N and e:suc(0)n, and let Rn be the mere congruence relation of lemma 198.49. Put Z/n:=N/Rn. By lemma 198.49, remn is idempotent and (remn(a)=Nremn(b))Rn(a,b). Hence lemma 68.42 applies: Z/na:Nremn(a)=Na, the set of canonical representatives 0,1,,n1. Two consequences. First, Z/n has decidable equality: by theorem 68.41, (q(a)=Z/nq(b))Rn(a,b)(remn(a)=Nremn(b)), and equality in N is decidable (theorem 62.39). Second, Z/n is small: the quotient lives in the same universe as N and Rn (remark 68.9). By contrast, the naive encoding as a type of equivalence classes quantifies over a universe of predicates and therefore generally lands one universe higher; it is that universe quantification, not an impredicativity assumption made here, that causes the increase.

Construction 68.44 — Addition on /n

There is a map :Z/nZ/nZ/n with q(a)q(b)q(a+b).

Proof of Construction 68.44 — Addition on /n

Construction. Apply Q-elim with motive constant at the set Z/nZ/n (functions into a set form a set by theorem 66.16). On points, define q(a) by a second application of Q-elim (constant motive Z/n): on points q(a)q(b):=q(a+b); the d datum requires Rn(b,b)q(a+b)=q(a+b). Eliminate the truncation into this proposition: witnesses b+kn=b+ln yield (a+b)+kn=(a+b)+ln by congruence and associativity, so rel yields rel((a+b)+kn=(a+b)+ln):q(a+b)=q(a+b). The outer d datum is an equality of functions; by function extensionality and Q-elim with prop-valued motive it reduces to Rn(a,a)q(a+b)=q(a+b), again compatibility. The computation rule is Q-comp twice. ◻

Exercise 68.19

★★☆ Let R be a mere relation on A and R¯ its reflexive–symmetric–transitive closure (define it as an inductive family, truncated). Show that the identity on generators induces an equivalence A/RA/R¯.

Exercise 68.20

★★☆ Instantiate lemma 198.48 at n=3. Trace the states (q,r) for inputs 0,,7, mark the two successor steps that take the equality branch of cmp(suc(r),3), and verify the decomposition equation and bound after each step. Then use bounded uniqueness to prove rem3(1)=rem3(5) is false and rem3(2)=rem3(8) is true.

Exercise 68.21

★★★ Show that congruence modulo n is compatible with addition, and that (Z/n,,q(0)) is an abelian group, with inverses induced by aremn(monus(n,remn(a))).

Exercise 68.22

★☆☆ Let A be a set and R(a,b):=a=Ab. Show A/RA.

General higher inductive definitions

A higher inductive signature lists point constructors and higher constructors whose boundaries are built from earlier generators. The torus is a checked two-dimensional instance.

Example 68.45 — The torus

The torus T2 is generated by a point b, two paths p,q:b=T2b, and a 2-path t:pq=qp. The source and target of the 2-path constructor are not constructors but composites of constructors — the general situation: a constructor of dimension n has source and target built from the earlier generators by the path operations of theorem 30.20. Its induction principle requires the dependent 2-paths of definition 68.1(ii); concatenation of dependent paths is defined by double identity induction on their base paths. The square constructor asks for the resulting dependent 2-path over the commutativity cell. One can also prove T2S1×S1, a nontrivial exercise in the same apparatus.

Remark 68.46 — Status of the general schema

This book does not adopt a general schema of higher inductive definitions. The circle, suspensions, set-quotients, and the truncations of chapter 66 are introduced by their own displayed rules, on the fixed pattern: point and path constructors (introduction), an eliminator whose premises assign to each constructor a datum over it (dependent paths in the appropriate dimension), judgmental computation on point constructors and propositional computation on path constructors (convention 68.4). A general syntactic schema playing the role that strict positivity plays for ordinary inductive types (remark 28.36) was, at the time of the foundational texts, and remains, a subject of research rather than a settled definition; the HoTT Book takes the same per-example approach [Uni13]. Semantically, classes of higher inductive types have been justified by cell monads with parameters in excellent model categories [LS20] and in cubical settings, where path constructors also compute judgmentally [CCHM18, ABC^+21].

Exercise 68.23

★★☆ Using definition 68.1(ii) and exercise 68.2, state the induction principle of the torus of example 68.45 precisely, and derive its recursion principle: for every type X with x0:X, loops u,v:x0=Xx0, and w:uv=vu, a map T2X sending b,p,q,t to x0,u,v,w, with a judgmental point equation and propositional equations for the three higher constructors.

Exercise 68.24

★★☆ Define S2 by hub and spokes: a point b, a point h, and for every x:S1 a path s(x):c(x)=h, where c:=recS1(b;reflb). Write out the induction principle (only dependent 1-paths are needed) and compare with SuspS1.

Suggested first pass.

None of these problems is a prerequisite for a later chapter. Begin with exercise 198.25, then complete exercise 198.26.

Exercise 198.25

★★☆ Give the circle-algebra morphisms from S1 to itself determined by refl and by the generating loop. Use homotopy-initiality to determine the path between any two morphisms with equal loop data, including the required coherence component.

Exercise 198.26

★★★ Practical project.hit-boundary-checker Implement in Agda or Kappa a checker for point and path constructors of the circle, suspension, and pushout signatures. Use a finite grammar whose constructor arguments are variables, previously declared point terms, or identity types between such terms; the checker need not decide a general HIT schema. Maintain a context of declared point constructors and verify that each path boundary has its declared type after simultaneous substitution. Reject a suspension meridian whose north endpoint is replaced by south, and print the point and path data required by the corresponding recursor. Mutation test: skip one endpoint check and observe that the malformed signature enters the accepted set.

Bibliographic notes

Higher inductive types emerged around 2011 from discussions of Bauer, Lumsdaine, Shulman, and Warren at the Oberwolfach meeting on homotopical type theory; the primary published exposition, which this chapter follows in substance, is Chapter 6 of the HoTT Book [Uni13] — the circle, interval, suspensions, cell complexes, hubs and spokes, pushouts, truncations, and quotients all appear there, and our convention 68.4 (judgmental computation for point constructors, propositional for path constructors) is the choice made there, for the reasons rehearsed in remark 68.5. Rijke’s textbook [Rij25] presents the circle through its dependent universal property and develops set quotients, the replacement axiom, and modular arithmetic in the style we adapt in §§ 68.2 and 68.7; the formulation of S1-elim by rules follows the formal appendix of [Uni13]. Quotient types long predate their higher-inductive formulation: they are present in NuPRL’s extensional theory, and Hofmann’s thesis [Hof95] analyzes quotients and their conservativity problems in intensional theories; observational type theory [AMS07] builds quotients in by definition of its equality. The effectiveness theorem (theorem 68.41) and the universe-raising equivalence-class construction it replaces go back, in the univalent setting, to Voevodsky’s Foundations library; our proof is the encode–decode argument of theorem 62.35. That path constructors may be made to compute judgmentally is a discovery of cubical type theory: [CCHM18] treats the circle and propositional truncation, [ABC^+21] the Cartesian variant, and Angiuli’s thesis [Ang19] the computational (meaning-theoretic) reading.

Search the book

Type to search the local edition.