Recall from definition 189.43 that a type is a mere proposition when any two of its elements are equal, and a set when each identity type is a mere proposition. Iterating this condition gives the truncation levels. Unit lies at the bottom, 𝟐 is a set but not a proposition, and a univalent universe is not a set.
The hierarchy of truncation levels
The hierarchy is generated from contractibility by iterating the passage to identity types.
Recall from definition 62.19 that 𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝐴):=∑𝑎:𝐴∏𝑥:𝐴𝑎=𝐴𝑥; its two components are the centre and the contraction. We keep this notation fixed throughout the truncation hierarchy.
For 𝟏, the pair (⋆,𝜆𝑥.𝗋𝖾𝖿𝗅⋆) is a contraction because Unit-𝜂 makes every 𝑥 judgmentally ⋆. By contrast 𝟐 is not contractible: a contraction would identify 𝗍𝗍 and 𝖿𝖿, contradicting theorem 29.14.
For each integer 𝑛≥−2 the predicate 𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾:U→U is defined by recursion on 𝑛: 𝗂𝗌-(−𝟤)-𝗍𝗒𝗉𝖾(𝑋):=𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝑋),𝗂𝗌-(𝗇+𝟣)-𝗍𝗒𝗉𝖾(𝑋):=∏𝑥,𝑦:𝑋𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾(𝑥=𝑋𝑦). A type 𝑋 with 𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾(𝑋) inhabited is a 𝑛-type, also called an 𝑛-truncated type.
The index 𝑛 in definition 66.2 is a numeral of the metatheory, so 𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾 is a family of definitions, one per level, and statements “for all 𝑛” are proved by metatheoretic induction with base case −2. Equivalently, an internal treatment indexes levels by 𝑘:ℕ via 𝑛=𝑘−2.
For a type 𝐴 put 𝗂𝗌𝖯𝗋𝗈𝗉(𝐴):=∏𝑥:𝐴∏𝑦:𝐴𝑥=𝐴𝑦,𝗂𝗌𝖲𝖾𝗍(𝐴):=∏𝑥:𝐴∏𝑦:𝐴𝗂𝗌𝖯𝗋𝗈𝗉(𝑥=𝐴𝑦). A type with 𝗂𝗌𝖯𝗋𝗈𝗉(𝐴) inhabited is a mere proposition, meaning that every two elements are equal. A type with 𝗂𝗌𝖲𝖾𝗍(𝐴) inhabited is a set, meaning that each identity type is a mere proposition. Theorem 66.9 identifies propositions with (−1)-types and sets with 0-types.
The hierarchy through closure under Σ-types is developed in the intensional base of chapter 26–chapter 30. Write 𝖧𝗈𝖳𝖳0 for that base plus the univalence axiom of definition 65.6; this is the signature used whenever function extensionality or paths in a universe enter. Each theorem below is read in the weaker base unless its statement, proof, or nearest signature marker uses 𝖧𝗈𝖳𝖳0.
The proof that propositions are sets uses transport in the based path family, 𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍𝑝(𝑞)=𝑞⋅𝑝. We record it with the three path-induction laws used alongside it.
Proof. (1)–(3): path induction on 𝑝; after 𝑝:=𝗋𝖾𝖿𝗅 both sides are equal by the computation rules of 𝗍𝗋 and 𝖺𝗉 (chapter 30) and the unit laws of theorem 30.20. (4): the center is (𝑎,𝗋𝖾𝖿𝗅); given (𝑥,𝑞), path induction on 𝑞 reduces the required path (𝑎,𝗋𝖾𝖿𝗅)=(𝑥,𝑞) to 𝗋𝖾𝖿𝗅. ◻
Proof of Lemma 66.6 — Contractibility propagates to paths
Proof. Let 𝑎 be the center with contraction 𝐶. Take 𝐶(𝑥)−1⋅𝐶(𝑦) as center of 𝑥=𝐴𝑦. For 𝑝:𝑥=𝐴𝑦, path induction reduces the goal 𝐶(𝑥)−1⋅𝐶(𝑥)=𝑝 to the case 𝑝:=𝗋𝖾𝖿𝗅, which is the inverse law of theorem 30.20. ◻
Proof. (1) With ℎ:𝗂𝗌𝖯𝗋𝗈𝗉(𝐴), the pair (𝑎,ℎ(𝑎)) contracts 𝐴; conversely a contraction 𝐶 yields ℎ(𝑥,𝑦):=𝐶(𝑥)−1⋅𝐶(𝑦). (2) The composite 𝑔∘𝑓 is homotopic to id𝑃 because 𝑃 is a proposition, and likewise 𝑓∘𝑔∼id𝑄; theorem 62.27 turns this quasi-inverse into an equivalence. (3) By (2) with 𝑄:=𝟏: the maps are 𝜆𝑥.⋆ and the constant at the given point, and 𝟏 is a proposition since any two of its elements are equal to ⋆ by the 𝜂-rule (chapter 27). ◻
Proof. Let ℎ:𝗂𝗌𝖯𝗋𝗈𝗉(𝐴); fix 𝑥:𝐴 and put 𝑔:=ℎ(𝑥):∏𝑦:𝐴𝑥=𝐴𝑦. For 𝑦,𝑧:𝐴 and 𝑝:𝑦=𝐴𝑧, dependent application (chapter 62) gives 𝖺𝗉𝖽𝑔(𝑝):𝗍𝗋𝑧′↦𝑥=𝐴𝑧′𝑝(𝑔(𝑦))=𝑔(𝑧), and by lemma 66.5(1) the left-hand side is 𝑔(𝑦)⋅𝑝. Hence 𝑔(𝑦)⋅𝑝=𝑔(𝑧), so 𝑝=𝑔(𝑦)−1⋅𝑔(𝑧) by the groupoid laws (theorem 30.20). The right-hand side does not depend on 𝑝: any two 𝑝,𝑞:𝑦=𝐴𝑧 are both equal to 𝑔(𝑦)−1⋅𝑔(𝑧), hence equal. ◻
Proof. If 𝗂𝗌-(−𝟣)-𝗍𝗒𝗉𝖾(𝐴), each 𝑥=𝐴𝑦 is contractible, and its center provides 𝗂𝗌𝖯𝗋𝗈𝗉(𝐴). Conversely let ℎ:𝗂𝗌𝖯𝗋𝗈𝗉(𝐴); each 𝑥=𝐴𝑦 is inhabited by ℎ(𝑥,𝑦) and is a proposition by lemma 66.8, hence contractible by lemma 66.7(1). The second claim follows by applying the first to each 𝑥=𝐴𝑦. ◻
Proof. Induction on 𝑛. Base case: a contractible type has contractible path types, i.e. is a (−1)-type (lemma 66.6). Inductive step: if 𝐴 is an (𝑛+1)-type, each 𝑥=𝐴𝑦 is an 𝑛-type, hence an (𝑛+1)-type by the inductive hypothesis, so 𝐴 is an (𝑛+2)-type. ◻
𝟏 is contractible, with center ⋆ and contraction given by 𝟏-induction into 𝑥↦(⋆=𝑥). The type 𝟎 is a proposition by empty elimination but is not contractible, since a center would inhabit it. The type 𝟐 is a set (lemma 65.21) but not a proposition, because 𝗍𝗍=𝖿𝖿 is empty. The path-space calculation of proposition 189.44 makes ℕ a set, and 𝟢≠𝗌𝗎𝖼(𝟢) shows it is not a proposition. Finally, univalence in 𝖧𝗈𝖳𝖳0 makes U not a set (theorem 65.22). These examples do not imply that every type is 𝑛-truncated for some finite 𝑛; no such bound is assumed.
★☆☆ Show that 𝗂𝗌-(−𝟤)-𝗍𝗒𝗉𝖾 cannot be weakened: exhibit a type all of whose identity types are contractible that is not itself contractible, and explain why the hierarchy is nevertheless not extended downward.
Proof. Induction on 𝑛. Base case (𝑛=−2): let 𝑥0 be the center of 𝑋 with contraction 𝐶; then 𝑟(𝑥0) is a center for 𝑌, since for 𝑦:𝑌 we have 𝖺𝗉𝑟(𝐶(𝑠(𝑦)))⋅𝜖(𝑦):𝑟(𝑥0)=𝑌𝑦.
Inductive step: assume the claim for 𝑛, let 𝑋 be an (𝑛+1)-type and 𝑦,𝑦′:𝑌; we show 𝑦=𝑌𝑦′ is an 𝑛-type by exhibiting it as a retract of the 𝑛-type 𝑠(𝑦)=𝑋𝑠(𝑦′). The section is 𝖺𝗉𝑠; the retraction is 𝑡(𝑞):=𝜖(𝑦)−1⋅𝖺𝗉𝑟(𝑞)⋅𝜖(𝑦′). For 𝑝:𝑦=𝑌𝑦′, naturality of 𝜖 (theorem 62.13) at 𝑝 gives 𝜖(𝑦)⋅𝑝=𝖺𝗉𝑟∘𝑠(𝑝)⋅𝜖(𝑦′), and 𝖺𝗉𝑟∘𝑠(𝑝)=𝖺𝗉𝑟(𝖺𝗉𝑠(𝑝)) by lemma 66.5(2); whiskering by 𝜖(𝑦)−1 and the groupoid laws (theorem 30.20) then yield 𝑡(𝖺𝗉𝑠(𝑝))=𝑝. Conclude by the inductive hypothesis. ◻
Proof. Induction on 𝑛. Base case: let 𝑎0 center 𝐴 and 𝑏0 center 𝐵(𝑎0); given (𝑎,𝑏), the contraction of 𝐴 gives 𝑝:𝑎0=𝐴𝑎, and 𝗍𝗋𝐵𝑝(𝑏0)=𝑏 holds because any two elements of the contractible type 𝐵(𝑎) are equal (lemma 66.7(1)); by theorem 62.30 these two data assemble to (𝑎0,𝑏0)=(𝑎,𝑏), so (𝑎0,𝑏0) is a center.
Inductive step: for (𝑎1,𝑏1),(𝑎2,𝑏2), theorem 62.30 gives ((𝑎1,𝑏1)=(𝑎2,𝑏2))≃∑𝑝:𝑎1=𝐴𝑎2𝗍𝗋𝐵𝑝(𝑏1)=𝐵(𝑎2)𝑏2, and the right-hand side is an 𝑛-type by the inductive hypothesis (base 𝑎1=𝐴𝑎2 and fibers both 𝑛-types); conclude by corollary 66.14. ◻
From this point to the propositional-truncation signature marker, the ambient theory is 𝖧𝗈𝖳𝖳0. The first additional consequence used is function extensionality, derived from univalence in theorem 65.18.
Proof. Induction on 𝑛. Base case: 𝑓0:=𝜆𝑥.𝑐(𝑥), where 𝑐(𝑥) is the center of 𝐵(𝑥), is a center: for 𝑔, function extensionality (theorem 65.18) turns the pointwise contraction paths 𝑐(𝑥)=𝑔(𝑥) into 𝑓0=𝑔. Inductive step: for 𝑓,𝑔:∏𝑥:𝐴𝐵(𝑥), by theorem 65.18 the map 𝗁𝖺𝗉𝗉𝗅𝗒 is an equivalence (𝑓=𝑔)≃∏𝑥:𝐴𝑓(𝑥)=𝐵(𝑥)𝑔(𝑥); the right-hand side is an 𝑛-type by the inductive hypothesis, so conclude by corollary 66.14. ◻
Proof of Proposition 66.18 — Descent along embeddings
Proof. For 𝑥,𝑥′:𝐴 the type 𝑥=𝐴𝑥′ is equivalent to 𝑓(𝑥)=𝐵𝑓(𝑥′), which is an (𝑛−1)-type by definition 66.2; apply corollary 66.14. (The claim fails at 𝑛=−2: 𝟎→𝟏 is an embedding.) ◻
Proof of Lemma 66.19 — Contractible fibers project away
Proof. A quasi-inverse is 𝑎↦(𝑎,𝑐(𝑎)) with 𝑐(𝑎) the center of 𝐶(𝑎). One composite is 𝗉𝗋1(𝑎,𝑐(𝑎))≡𝑎; for the other, (𝑥,𝑢) and (𝑥,𝑐(𝑥)) are identified by theorem 62.30 via 𝗋𝖾𝖿𝗅 and the contraction of 𝐶(𝑥). Conclude by theorem 62.27. ◻
Proof. By theorem 62.30, (𝑢=𝑣)≃∑𝑝:𝗉𝗋1𝑢=𝐴𝗉𝗋1𝑣𝗍𝗋𝑃𝑝(𝗉𝗋2𝑢)=𝑃(𝗉𝗋1𝑣)𝗉𝗋2𝑣. Each fiber is a path type in the proposition 𝑃(𝗉𝗋1𝑣), hence an inhabited proposition (lemma 66.8), hence contractible (lemma 66.7(1)); apply lemma 66.19. That the composite equivalence is 𝖺𝗉𝗉𝗋1 is a path induction. ◻
Proof. Let (𝑎,𝐶),(𝑎′,𝐶′):𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝐴). By theorem 62.30 it suffices to give 𝑝:=𝐶(𝑎′):𝑎=𝐴𝑎′ and a path 𝗍𝗋𝑝(𝐶)=𝐶′ in ∏𝑥:𝐴𝑎′=𝐴𝑥. Since 𝐴 is contractible, each 𝑎′=𝐴𝑥 is contractible (lemma 66.6), hence a proposition; by theorem 66.16 (level −1) the Π-type is a proposition, so any two of its elements are equal. ◻
Proof of Theorem 66.22 — Being truncated is a proposition
Proof. Induction on 𝑛; the base case is lemma 66.21, and the inductive step is theorem 66.16 at level −1 applied twice to ∏𝑥:𝑋∏𝑦:𝑋𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾(𝑥=𝑋𝑦).
For the named bottom levels, let ℎ,𝑔:𝗂𝗌𝖯𝗋𝗈𝗉(𝑋). Since a proposition is a set (lemma 66.8), ℎ(𝑥,𝑦)=𝑔(𝑥,𝑦); function extensionality in 𝑥 and 𝑦 gives ℎ=𝑔. For 𝗂𝗌𝖲𝖾𝗍(𝑋), apply this pointwise equality one dimension higher to its two path-family witnesses and then use function extensionality twice. Thus 𝗂𝗌𝖲𝖾𝗍(𝑋) is a proposition. The mutual implications of theorem 66.9 are therefore equivalences by lemma 66.7(2). ◻
For every 𝑓:𝐴→𝐵, the type 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓)≡∏𝑏:𝐵𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝖿𝗂𝖻𝑓(𝑏)) of definition 62.21 is a proposition. Consequently 𝐴≃𝐵≡∑𝑓:𝐴→𝐵𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) has the level of its function part: two equivalences are equal as soon as their underlying functions are.
Proof. Let (𝑋,𝑝),(𝑋′,𝑝′):𝑛-TypeU. The family 𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾 consists of propositions (theorem 66.22), hence ((𝑋,𝑝)=(𝑋′,𝑝′))𝑙𝑒𝑚𝑚𝑎66.20≃(𝑋=U𝑋′)𝑑𝑒𝑓𝑖𝑛𝑖𝑡𝑖𝑜𝑛65.6≃(𝑋≃𝑋′), so it suffices that 𝑋≃𝑋′ is an 𝑛-type. For 𝑛≥−1: 𝑋→𝑋′ is an 𝑛-type (theorem 66.16) and each 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) is a proposition (corollary 66.23), hence an 𝑛-type (corollary 66.11); apply theorem 66.15. For 𝑛=−2: both types are contractible, so 𝑋→𝑋′ is contractible and 𝑋≃𝑋′ is an inhabited proposition (inhabited via 𝑋≃𝟏≃𝑋′, lemma 66.7(3)), hence contractible. ◻
Proof of Lemma 195.26 — Dependent sum over a contractible base
Proof. Let 𝑐:∏𝑥:𝐴𝑎0=𝐴𝑥 be the contraction. Put Φ(𝑥,𝑑):=𝗍𝗋𝐷𝑐(𝑥)−1(𝑑),Ψ(𝑑):=(𝑎0,𝑑). The type 𝑎0=𝐴𝑎0 is contractible by lemma 66.6, so 𝑐(𝑎0)=𝗋𝖾𝖿𝗅𝑎0. Functoriality of transport then gives Φ(Ψ(𝑑))=𝑑. For the other composite, the base component of a path from Ψ(Φ(𝑥,𝑑)) to (𝑥,𝑑) is 𝑐(𝑥). Its fiber component is 𝗍𝗋𝐷𝑐(𝑥)(𝗍𝗋𝐷𝑐(𝑥)−1(𝑑))𝑙𝑒𝑚𝑚𝑎62.7(𝑖)=𝗍𝗋𝐷𝑐(𝑥)−1⋅𝑐(𝑥)(𝑑)𝑝𝑟𝑜𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛62.2(𝑖𝑖)=𝑑. By theorem 62.30, the pair consisting of the base path 𝑐(𝑥) and this fiber path gives Ψ(Φ(𝑥,𝑑))=(𝑥,𝑑). Theorem 62.27 turns these two homotopies into the displayed equivalence. ◻
★★☆ Using the characterization of paths in coproducts (theorem 62.35), show that 𝐴+𝐵 is an 𝑛-type whenever 𝐴 and 𝐵 are and 𝑛≥0. Show that the claim fails at 𝑛=−1.
Sets are the types for which identity proofs are unique; this section characterizes them by Streicher’s axiom K and proves Hedberg’s theorem: decidable equality forces a type to be a set.
Proof. K is the instance 𝑞:=𝗋𝖾𝖿𝗅 of 𝗂𝗌𝖲𝖾𝗍. Conversely, given K and 𝑝,𝑞:𝑥=𝑋𝑦, path induction on 𝑞 reduces the goal 𝑝=𝑞 to 𝑝′=𝗋𝖾𝖿𝗅 for 𝑝′:𝑥=𝑋𝑥, which is K. In the exact groupoid-model fragment of corollary 54.36, neither principle is derivable for general 𝑋. ◻
The tempting direct proof of path uniqueness case-splits on a decision 𝑑(𝑥,𝑦). Its positive branch gives a path 𝑟:𝑥=𝑦, but not the required identifications of arbitrary 𝑝,𝑞:𝑥=𝑦 with 𝑟: 𝑝,𝑞:𝑥=𝑦,𝑑(𝑥,𝑦)≡𝗂𝗇𝗅(𝑟)⊬𝑝=𝑞. The negative branch is impossible when a path is given, but that does not repair the positive branch. The collapse lemma turns the decision into a weakly constant family by sending every input path to the same chosen 𝑟.
Suppose 𝑋 carries a family of weakly constant endomaps of its path types: maps 𝑓𝑥,𝑦:(𝑥=𝑋𝑦)→(𝑥=𝑋𝑦) together with 𝜅𝑥,𝑦:∏𝑝:𝑥=𝑋𝑦∏𝑞:𝑥=𝑋𝑦𝑓𝑥,𝑦(𝑝)=𝑓𝑥,𝑦(𝑞) for all 𝑥,𝑦:𝑋. Then 𝑋 is a set.
Proof. First, every 𝑝:𝑥=𝑋𝑦 satisfies 𝑝=𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅)−1⋅𝑓𝑥,𝑦(𝑝). Indeed, by path induction on 𝑝 it suffices to check 𝗋𝖾𝖿𝗅=𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅)−1⋅𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅), which is the inverse law of theorem 30.20. Now for 𝑝,𝑞:𝑥=𝑋𝑦, (66.1) and 𝖺𝗉 of 𝑟↦𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅)−1⋅𝑟 applied to 𝜅𝑥,𝑦(𝑝,𝑞) give 𝑝(66.1)=𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅)−1⋅𝑓𝑥,𝑦(𝑝)𝖺𝗉𝑎𝑝𝑝𝑙𝑖𝑒𝑑𝑡𝑜𝜅𝑥,𝑦(𝑝,𝑞)=𝑓𝑥,𝑥(𝗋𝖾𝖿𝗅)−1⋅𝑓𝑥,𝑦(𝑞)(66.1),𝑏𝑎𝑐𝑘𝑤𝑎𝑟𝑑𝑠=𝑞. ◻
Proof. Let 𝑑 decide equality. Fix 𝑥,𝑦:𝑋 and define 𝐸𝑥,𝑦:=𝑥=𝑋𝑦. By coproduct recursion, define 𝑔:(𝐸𝑥,𝑦+¬𝐸𝑥,𝑦)→𝐸𝑥,𝑦→𝐸𝑥,𝑦,𝑔(𝗂𝗇𝗅(𝑟)):=𝜆𝑝.𝑟,𝑔(𝗂𝗇𝗋(𝑤)):=𝜆𝑝.𝗋𝖾𝖼𝟎(𝑤(𝑝)). Put 𝑓𝑥,𝑦:=𝑔(𝑑(𝑥,𝑦)). Each 𝑔(𝑐) is weakly constant, by coproduct induction on 𝑐: in the case 𝗂𝗇𝗅(𝑟) both values are 𝑟, so 𝗋𝖾𝖿𝗅 suffices; in the case 𝗂𝗇𝗋(𝑤), for given 𝑝,𝑞 the element 𝑤(𝑝):𝟎 yields 𝗋𝖾𝖼𝟎(𝑤(𝑝)):𝑔(𝑐)(𝑝)=𝑔(𝑐)(𝑞). Hence 𝑓𝑥,𝑦 is weakly constant for all 𝑥,𝑦, and lemma 66.27 applies. ◻
Proof. Both have decidable equality: for 𝟐 by a four-way case analysis using theorem 29.14; for ℕ by double induction, using that 𝟢≠𝗌𝗎𝖼(𝑛) and that 𝗌𝗎𝖼 is injective — both consequences of the path-space computation for ℕ (theorem 62.39). Its code family is 𝟏 when both numerals are zero, 𝟎 when exactly one is zero, and the code for (𝑚,𝑛) at (𝗌𝗎𝖼(𝑚),𝗌𝗎𝖼(𝑛)); induction decides whether the code is inhabited. Transporting that decision across theorem 62.39 decides each path type. Apply theorem 66.29. ◻
Proof of Proposition 66.31 — Separated types are sets
Proof. Let 𝑠 witness the hypothesis. Since 𝟎 is a proposition, each ¬¬(𝑥=𝑋𝑦) is a proposition by theorem 66.16 (level −1; here 𝖿𝗎𝗇𝖾𝗑𝗍 is used). Put 𝑓𝑥,𝑦(𝑝):=𝑠(𝑥,𝑦,𝜆𝑘.𝑘(𝑝)). For 𝑝,𝑞, the arguments 𝜆𝑘.𝑘(𝑝) and 𝜆𝑘.𝑘(𝑞) are equal in the proposition ¬¬(𝑥=𝑋𝑦), so 𝖺𝗉 of 𝑠(𝑥,𝑦) makes 𝑓𝑥,𝑦 weakly constant. Apply lemma 66.27. ◻
The theory is extended by the type former ‖𝐴‖ with the rules below (premises compressed per convention 26.14; congruence and substitution rules as in definition 26.22).
In Trunc-E, 𝐶 is a family over ‖𝐴‖ and 𝑤(𝑡):𝗂𝗌𝖯𝗋𝗈𝗉(𝐶(𝑡)) proves that each target fiber is a proposition. (Trunc-C carries the premises of Trunc-E.) The resulting signature is denoted 𝖧𝗈𝖳𝖳0+‖−‖: it contains exactly 𝖧𝗈𝖳𝖳0 and these five truncation rules.
𝗌𝗊(𝑢,𝑣):𝑢=𝑣 is a path constructor. To eliminate into a family of propositions, it is enough to specify the point case: any two candidate images of 𝗌𝗊(𝑢,𝑣) are equal because the target fiber is a proposition. Extensional truncation (definition 35.18) instead makes proof irrelevance judgmental; the present path is propositional.
Proof.𝜆𝑢.𝜆𝑣.𝗌𝗊(𝑢,𝑣):𝗂𝗌𝖯𝗋𝗈𝗉(‖𝐴‖). If 𝐴 is a proposition, define 𝑟:‖𝐴‖→𝐴 by 𝑟(|𝑎|):=𝑎 using Trunc-E with the constant family 𝐶:=𝐴; the rule applies because 𝐴 is a proposition. Conclude by lemma 66.7(2). ◻
When the goal of a proof is a proposition and a hypothesis 𝑢:‖𝐴‖ is available, we permit ourselves to say “we may assume 𝑎:𝐴”: formally, the goal is obtained by Trunc-E applied to 𝑢, the propositionhood witness of the goal, and the proof carried out under the assumption 𝑎:𝐴. Each use cites this convention.
Proof. Both sides are propositions (theorem 66.16 at level −1), and maps exist in both directions: precomposition, and 𝑔↦𝗋𝖾𝖼‖𝐴‖(𝑔) by Trunc-E with constant family 𝐵. Apply lemma 66.7(2). ◻
‖𝟐‖ is contractible (|𝗍𝗍| inhabits it; apply lemma 66.7(1)). There is no 𝑔:‖𝟐‖→𝟐 with ∏𝑥:𝟐𝑔(|𝑥|)=𝟐𝑥: from such a 𝑔, 𝗍𝗍𝗌𝖾𝖼𝗍𝗍=𝑔(|𝗍𝗍|)𝖺𝗉𝑔(𝗌𝗊(|𝗍𝗍|,|𝖿𝖿|))=𝑔(|𝖿𝖿|)𝗌𝖾𝖼𝖿𝖿=𝖿𝖿 contradicting theorem 29.14. The data discarded by |−| cannot be recovered by any function, even though ‖𝟐‖ is “true”.
★★☆ State and prove the dependent universal property: for a family of propositions 𝑄 over ‖𝐴‖, precomposition (∏𝑡:‖𝐴‖𝑄(𝑡))→(∏𝑎:𝐴𝑄(|𝑎|)) is an equivalence.
★★☆ Show that if 𝑋 merely has decidable equality, i.e. ∏𝑥,𝑦:𝑋‖(𝑥=𝑋𝑦)+¬(𝑥=𝑋𝑦)‖, then 𝑋 is still a set. Hint: weak constancy is a proposition, so convention 66.36 applies before lemma 66.27.
A logical connective must return a proposition. Products and function types preserve propositionhood, but 𝑃+𝑄 and ∑𝑥𝑃(𝑥) need not; we therefore define disjunction and existence by truncating those two types.
Case analysis on ∃ or ∨ is available exactly when the goal is a proposition (convention 66.36); this is the formal content of the informal phrase “there exists, but no particular witness is given”.
For families 𝐴 over 𝑋 and 𝑃 over ∑𝑥:𝑋𝐴(𝑥), put 𝐺:=∏𝑥:𝑋𝐴(𝑥), and for an input 𝐹 put 𝑔𝐹:=𝜆𝑥.𝗉𝗋1(𝐹𝑥) and 𝑝𝐹:=𝜆𝑥.𝗉𝗋2(𝐹𝑥). The term 𝜆𝐹.(𝑔𝐹,𝑝𝐹):(∏𝑥:𝑋∑𝑎:𝐴(𝑥)𝑃(𝑥,𝑎))→∑𝑔:𝐺∏𝑥:𝑋𝑃(𝑥,𝑔𝑥) re-associates data; nothing is chosen (cf. the discussion in chapter 35). The axiom of choice proper concerns the truncated existential.
Proof of Theorem 66.43 — Univalence refutes untruncated excluded middle
Proof. Suppose 𝑓:∏𝐴:U𝐴+¬𝐴. Let 𝑒:𝟐≃𝟐 be the swap equivalence, 𝑒(𝗍𝗍):=𝖿𝖿, 𝑒(𝖿𝖿):=𝗍𝗍 (its own quasi-inverse by 𝟐-induction, hence an equivalence by theorem 62.27), and 𝑝:=𝗎𝖺(𝑒):𝟐=U𝟐. Dependent application gives 𝖺𝗉𝖽𝑓(𝑝):𝗍𝗋𝐴↦𝐴+¬𝐴𝑝(𝑓(𝟐))=𝑓(𝟐). We refute both cases of 𝑐:=𝑓(𝟐):𝟐+¬𝟐 by coproduct induction, with motive 𝑐′↦(𝗍𝗋𝑝(𝑐′)=𝑐′)→𝟎. Case𝗂𝗇𝗋(𝑤): already 𝑤(𝗍𝗍):𝟎. Case𝗂𝗇𝗅(𝑥): by lemma 66.5(3) and the computation of transport along 𝗎𝖺 (theorem 65.9), 𝗍𝗋𝑝(𝗂𝗇𝗅(𝑥))=𝗂𝗇𝗅(𝗍𝗋𝐴↦𝐴𝑝(𝑥))=𝗂𝗇𝗅(𝑒(𝑥)), so the hypothesis yields 𝗂𝗇𝗅(𝑒(𝑥))=𝗂𝗇𝗅(𝑥), whence 𝑒(𝑥)=𝑥 by the path characterization of coproducts (theorem 62.37). But 𝑒 has no fixed point: 𝟐-induction on 𝑥 reduces this to 𝖿𝖿≠𝗍𝗍 and 𝗍𝗍≠𝖿𝖿 (theorem 29.14). ◻
The global law 𝖫𝖤𝖬∞ would decide every path type and hence, by theorem 66.29, make every type a set. Univalence refutes that law by theorem 66.43. The proposition-restricted law 𝖫𝖤𝖬 gives only merely decidable equality for an arbitrary type and therefore does not provide the weakly constant endomap required by lemma 66.27.
★★☆ Show ¬∏𝐴:U(‖𝐴‖→𝐴). Apply a hypothetical function at 𝟐 and transport it along the universe loop 𝗎𝖺(𝑒𝗌𝗐𝖺𝗉), where 𝑒𝗌𝗐𝖺𝗉 exchanges 𝗍𝗍 and 𝖿𝖿, using the naturality calculation in theorem 66.43 to obtain a fixed point of Boolean swap.
The simplicial-set model validates univalence together with the proposition-restricted 𝖫𝖤𝖬 of definition 66.42, while other models refute that axiom. Thus it is consistent relative to the model assumptions and is not derivable from the preceding rules [Uni13][AG26].
Let 𝑋 be a set, 𝐴 a family over 𝑋 with each 𝐴(𝑥) a set, and 𝑃 a family of propositions over pairs 𝑥:𝑋, 𝑎:𝐴(𝑥). The axiom of choice𝖠𝖢 asserts, for all such data: (∏𝑥:𝑋‖∑𝑎:𝐴(𝑥)𝑃(𝑥,𝑎)‖)→∥∑𝑔:∏𝑥:𝑋𝐴(𝑥)∏𝑥:𝑋𝑃(𝑥,𝑔𝑥)∥.
Proof. Both statements are propositions, so logical equivalence suffices (lemma 66.7(2)). The family form is the instance 𝑃:=𝜆𝑥.𝜆𝑎.𝟏 of 𝖠𝖢 up to the equivalence ∑𝑎:𝐴(𝑥)𝟏≃𝐴(𝑥). Conversely put 𝑌(𝑥):=∑𝑎:𝐴(𝑥)𝑃(𝑥,𝑎). This is a set by theorem 66.15, so the family form gives ‖∏𝑥:𝑋𝑌(𝑥)‖. Propositional-truncation elimination into the desired truncated conclusion applies; a section 𝑠:∏𝑥:𝑋𝑌(𝑥) is sent to |(𝜆𝑥.𝗉𝗋1(𝑠(𝑥)),𝜆𝑥.𝗉𝗋2(𝑠(𝑥)))|. These maps prove both implications and hence the equivalence. ◻
The simplicial-set model validates univalence together with 𝖠𝖢, while other models refute choice; hence 𝖠𝖢 is relatively consistent and is not derivable [Uni13]. The hypothesis that 𝑋 be a set is essential by theorem 66.50.
Let 𝑋:=∑𝐴:U‖𝟐=𝐴‖, the connected type of two-element types. Its loop corresponding to Boolean swap witnesses the failure of higher choice and the non-propositionality of quasi-inverses.
Proof of Lemma 66.49 — The type of two-element types
Proof. (1) Given (𝐴,𝑢):𝑋, the goal is a proposition, so by convention 66.36 assume 𝑝:𝟐=U𝐴; then lemma 66.20 (the second components live in propositions, lemma 66.35) turns 𝑝 into 𝑥0=𝑋(𝐴,𝑢), and |−| concludes.
(2) By lemma 66.20 and univalence (definition 65.6), (𝑥0=𝑋𝑥0)≃(𝟐=U𝟐)≃(𝟐≃𝟐); the composite is 𝑟↦𝗂𝖽𝗍𝗈𝖾𝗊𝗏(𝖺𝗉𝗉𝗋1(𝑟)) and sends 𝗋𝖾𝖿𝗅 to id𝟐 by the computation rule of 𝗂𝖽𝗍𝗈𝖾𝗊𝗏.
(4) Let 𝑞:𝑥0=𝑋𝑥0 correspond under (2) to the swap equivalence 𝑒. If 𝑞=𝗋𝖾𝖿𝗅, then applying the function underlying (2) gives 𝑒=id𝟐 as equivalences, hence 𝑒(𝗍𝗍)=𝗍𝗍 by lemma 66.20 and 𝗁𝖺𝗉𝗉𝗅𝗒; but 𝑒(𝗍𝗍)≡𝖿𝖿, contradicting theorem 29.14. So 𝑥0=𝑋𝑥0 has two distinct elements and is not a proposition; a set has only propositions as path types. ◻
Arbitrary indexing types do not satisfy the preceding family-choice lemma. Take 𝑋,𝑥0 from lemma 66.49 and put 𝑌(𝑥):=𝑥0=𝑋𝑥,𝑊:=∏𝑥:𝑋‖𝑌(𝑥)‖,𝑆:=∏𝑥:𝑋𝑌(𝑥). The family 𝑌 is set-valued, but ¬(𝑊→‖𝑆‖).
Proof of Theorem 66.50 — No choice for arbitrary types
Proof. Each 𝑌(𝑥) is a set by lemma 66.49(3), and ∏𝑥:𝑋‖𝑌(𝑥)‖ holds by (1). Suppose the implication held; its conclusion gives ‖∏𝑥:𝑋𝑥0=𝑋𝑥‖. The goal 𝟎 is a proposition, so assume 𝐶:∏𝑥:𝑋𝑥0=𝑋𝑥 (convention 66.36); then (𝑥0,𝐶) contracts 𝑋, so 𝑋 is a proposition (lemma 66.7(1), theorem 66.10), hence a set — contradicting lemma 66.49(4). ◻
For 𝑛=−2 one puts ‖𝐴‖−2:=𝟏. We write 𝜋0(𝐴):=‖𝐴‖0, the set of connected components. The resulting signature is 𝖧𝗈𝖳𝖳0+{‖−‖𝑛}𝑛≥−1; no additional HIT schema is implicit in that name.
At 𝑛=−1 the schema is inter-derivable with definition 66.33: 𝗌𝗊 yields the witness of 𝗂𝗌-(−𝟣)-𝗍𝗒𝗉𝖾 by theorem 66.9, and conversely. As with ‖−‖, no computation rule for the truncatedness witness 𝗁𝐴 is imposed. A full higher-inductive construction uses hub-and-spoke constructors attached along 𝕊𝑛+1[Uni13]. Theorem 7.3.12 of that source is instead the path-space equivalence used below.
Proof. The candidate inverse sends 𝑔:𝐴→𝐵 to 𝗋𝖾𝖼‖𝐴‖𝑛(𝑔), obtained from Trunc𝑛-E with constant family 𝐵 and 𝑤:=𝜆𝑡.𝗁𝐵. One composite is 𝑔 up to 𝖿𝗎𝗇𝖾𝗑𝗍, judgmentally on points by Trunc𝑛-C. For the other, given ℎ:‖𝐴‖𝑛→𝐵, the family 𝑡↦𝗋𝖾𝖼‖𝐴‖𝑛(ℎ∘|−|𝑛)(𝑡)=𝐵ℎ(𝑡) consists of 𝑛-types (corollary 66.11), so Trunc𝑛-E applies, and on points both sides compute to ℎ(|𝑥|𝑛); conclude by 𝖿𝗎𝗇𝖾𝗑𝗍 (theorem 65.18). These two homotopies make the displayed precomposition map a quasi-inverse equivalence by theorem 62.27. ◻
Proof.Theorem 66.54 with 𝐵:=𝐴 yields 𝑟:‖𝐴‖𝑛→𝐴 with 𝑟∘|−|𝑛∼id; the composite |−|𝑛∘𝑟 is homotopic to the identity by Trunc𝑛-E into the path family 𝑡↦|𝑟(𝑡)|𝑛=𝑡, whose fibers are 𝑛-types (corollary 66.11), with 𝗋𝖾𝖿𝗅 on points. Thus 𝑟 is a quasi-inverse of |−|𝑛; apply theorem 62.27. ◻
Proof of Theorem 66.56 — Path spaces of truncations
Proof. The inverse cannot be defined while both endpoints are fixed at constructor images. Generalize them. Put 𝖳𝗒𝗉𝖾𝑛:=∑𝑋:U𝗂𝗌-𝗇-𝗍𝗒𝗉𝖾(𝑋). By theorem 66.25, 𝖳𝗒𝗉𝖾𝑛 is an (𝑛+1)-type. Double (𝑛+1)-truncation elimination therefore defines ̂𝑃:‖𝐴‖𝑛+1→‖𝐴‖𝑛+1→𝖳𝗒𝗉𝖾𝑛, with constructor equation ̂𝑃(|𝑥|𝑛+1,|𝑦|𝑛+1):=(‖𝑥=𝑦‖𝑛,𝗁𝑥=𝑦), where 𝗁𝑥=𝑦 is the truncation witness. Write 𝑃(𝑢,𝑣):=𝗉𝗋1(̂𝑃(𝑢,𝑣)); each 𝑃(𝑢,𝑣) is an 𝑛-type by the second component.
Double elimination on 𝑢,𝑣, followed at constructor endpoints by 𝑛-truncation elimination, defines 𝖽𝖾𝖼𝗈𝖽𝖾𝑢,𝑣:𝑃(𝑢,𝑣)→(𝑢=𝑣),𝖽𝖾𝖼𝗈𝖽𝖾|𝑥|𝑛+1,|𝑦|𝑛+1(|𝑝|𝑛):=𝖺𝗉|−|𝑛+1(𝑝). The eliminations are permitted because 𝑢=𝑣 is an 𝑛-type. A second elimination defines the reflexive code 𝑟:∏𝑢:‖𝐴‖𝑛+1𝑃(𝑢,𝑢),𝑟(|𝑥|𝑛+1):=|𝗋𝖾𝖿𝗅𝑥|𝑛. Transporting this code defines the other map: 𝖾𝗇𝖼𝗈𝖽𝖾𝑢,𝑣(𝑞):=𝗍𝗋𝑧↦𝑃(𝑢,𝑧)𝑞(𝑟(𝑢)):𝑃(𝑢,𝑣).
For 𝑞:𝑢=𝑣, identity induction reduces 𝖽𝖾𝖼𝗈𝖽𝖾(𝖾𝗇𝖼𝗈𝖽𝖾(𝑞))=𝑞 to 𝖽𝖾𝖼𝗈𝖽𝖾(𝑟(𝑢))=𝗋𝖾𝖿𝗅𝑢. This is an identity type between paths in the (𝑛+1)-type ‖𝐴‖𝑛+1, hence an (𝑛−1)-type. Truncation elimination on 𝑢 is therefore allowed, and at 𝑢≡|𝑥|𝑛+1 both sides compute to 𝖺𝗉|−|𝑛+1(𝗋𝖾𝖿𝗅𝑥)≡𝗋𝖾𝖿𝗅.
For 𝑐:𝑃(𝑢,𝑣), the other goal 𝖾𝗇𝖼𝗈𝖽𝖾(𝖽𝖾𝖼𝗈𝖽𝖾(𝑐))=𝑐 is an identity type in the 𝑛-type 𝑃(𝑢,𝑣), hence an (𝑛−1)-type. Eliminate 𝑢 and 𝑣, then eliminate 𝑐:‖𝑥=𝑦‖𝑛 to 𝑐≡|𝑝|𝑛. Identity induction on 𝑝 reduces 𝗍𝗋𝑧↦𝑃(|𝑥|𝑛+1,𝑧)𝖺𝗉|−|𝑛+1(𝑝)(|𝗋𝖾𝖿𝗅𝑥|𝑛)=|𝑝|𝑛 to reflexivity. Thus 𝖾𝗇𝖼𝗈𝖽𝖾 and 𝖽𝖾𝖼𝗈𝖽𝖾 are quasi-inverses; theorem 62.27 gives the displayed equivalence. This is the local encode–decode proof of HoTT Book Theorem 7.3.12 [Uni13]. ◻
𝜋0(𝐴) is a set, and by theorem 66.56 its equalities are the truncated path types: (|𝑥|0=𝜋0(𝐴)|𝑦|0)≃‖𝑥=𝐴𝑦‖. A type is connected if 𝜋0(𝐴) is contractible; lemma 66.49(1) says exactly that the type of two-element types is connected (cf. exercise 66.23).
Contractible fibers make 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) a proposition. By contrast, 𝗊𝗂𝗇𝗏(𝑓) contains a chosen inverse and two chosen homotopies; for suitable 𝑓, those choices carry nontrivial loop data.
Recall from definition 62.23 that, for 𝑓:𝐴→𝐵, 𝗊𝗂𝗇𝗏(𝑓):=∑𝑔:𝐵→𝐴(𝑔∘𝑓∼id𝐴)×(𝑓∘𝑔∼id𝐵).Theorem 62.27, Proposition 62.24 provide maps 𝗊𝗂𝗇𝗏(𝑓)→𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) and 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓)→𝗊𝗂𝗇𝗏(𝑓); and 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) is a proposition (corollary 66.23). Were 𝗊𝗂𝗇𝗏(𝑓) also a proposition, the two notions would be equivalent for every 𝑓 (lemma 66.7(2)); theorem 66.62 rules this out.
Proof.Step 1: reduction to the identity. Since 𝗊𝗂𝗇𝗏(𝑓) is inhabited, 𝑓 underlies an equivalence 𝑒:𝐴≃𝐵. The based type of equivalences ∑𝐵′:U𝐴≃𝐵′ is contractible: by univalence (definition 65.6) the fiberwise map 𝗂𝖽𝗍𝗈𝖾𝗊𝗏:(𝐴=U𝐵′)→(𝐴≃𝐵′) is a fiberwise equivalence, so lemma 62.31 makes the total space equivalent to ∑𝐵′:U𝐴=U𝐵′, which is contractible by lemma 66.5(4). Hence (𝐴,id𝐴)=(𝐵,𝑒) in this type. Define the family 𝑃(𝐵′,𝑒′):=𝗊𝗂𝗇𝗏(𝗉𝗋1(𝑒′))≃∏𝑥:𝐴𝑥=𝐴𝑥. Transporting 𝑃(𝐴,id𝐴) along the displayed path reduces the claim to 𝑓:=id𝐴.
Step 2: computation at the identity. Using 𝖿𝗎𝗇𝖾𝗑𝗍 (theorem 65.18) in both homotopy components, 𝗊𝗂𝗇𝗏(id𝐴)≃∑𝑔:𝐴→𝐴(𝑔=id)×(𝑔=id)≃∑𝑢:∑𝑔:𝐴→𝐴𝑔=id𝗉𝗋1(𝑢)=id by re-association of Σ (a definitional isomorphism, chapter 27). The inner base is contractible with center (id,𝗋𝖾𝖿𝗅) (lemma 66.5(4)), so by lemma 195.26 the whole is equivalent to id=id, and by 𝖿𝗎𝗇𝖾𝗑𝗍 again to ∏𝑥:𝐴𝑥=𝐴𝑥. ◻
Proof. First, every 𝑥=𝐴𝑦 is a set: being a set is a proposition (theorem 66.22), so by (2) and convention 66.36 we may assume 𝑝:𝑎=𝐴𝑥 and 𝑝′:𝑎=𝐴𝑦; then 𝑟↦𝑝⋅𝑟⋅𝑝′−1 is an equivalence (𝑥=𝐴𝑦)≃(𝑎=𝐴𝑎). Its quasi-inverse sends 𝑠 to 𝑝−1⋅𝑠⋅𝑝′, and one composite is 𝑝−1⋅(𝑝⋅𝑟⋅𝑝′−1)⋅𝑝′associativityandinverselaws=𝑟; the reverse composite is the same calculation with 𝑝,𝑝′ reversed. Hence (1) concludes by corollary 66.14.
The direct construction cannot eliminate the witness supplied by (2): the tempting clause 𝑓(𝑥)?=𝑝−1⋅𝑞⋅𝑝(𝑝:‖𝑎=𝐴𝑥‖) is ill typed because 𝑝 is truncated, while the proposed codomain 𝑥=𝐴𝑥 is only known to be a set, not a proposition. The repair is to retain, together with a candidate loop, the assertion that every untruncated witness gives that same loop. This strengthened target is a proposition and therefore admits truncation elimination.
For 𝑥:𝐴 define 𝐵(𝑥):=∑𝑟:𝑥=𝐴𝑥∏𝑠:𝑎=𝐴𝑥𝑟=𝑠−1⋅𝑞⋅𝑠. Each fiber over 𝑟 is a proposition (Π over path types of the set 𝑥=𝐴𝑥; theorem 66.16), so 𝐵(𝑥) is a subtype of 𝑥=𝐴𝑥 and lemma 66.20 applies to its elements. 𝐵(𝑥) is a proposition: this claim is itself a proposition (theorem 66.22), so assume 𝑝:𝑎=𝐴𝑥; given (𝑟,ℎ),(𝑟′,ℎ′):𝐵(𝑥), we have ℎ(𝑝)⋅ℎ′(𝑝)−1:𝑟=𝑟′, and lemma 66.20 lifts it to (𝑟,ℎ)=(𝑟′,ℎ′). 𝐵(𝑥) is inhabited for every 𝑥: again a proposition (just shown), so assume 𝑝:𝑎=𝐴𝑥 and put 𝑟:=𝑝−1⋅𝑞⋅𝑝; for 𝑠:𝑎=𝐴𝑥, whiskering by 𝑝−1 and 𝑠 and the groupoid laws reduce the required 𝑝−1⋅𝑞⋅𝑝=𝑠−1⋅𝑞⋅𝑠 to 𝑞⋅(𝑝⋅𝑠−1)=(𝑝⋅𝑠−1)⋅𝑞, an instance of centrality (3) at the loop 𝑝⋅𝑠−1.
Finally set 𝑓(𝑥):=𝗉𝗋1(𝑏(𝑥)), where 𝑏:∏𝑥:𝐴𝐵(𝑥) is the section just constructed. At 𝑥:=𝑎 the second component gives 𝑓(𝑎)=𝗋𝖾𝖿𝗅−1⋅𝑞⋅𝗋𝖾𝖿𝗅=𝑞 by the unit laws. ◻
Proof. By corollary 66.23 it suffices to identify the underlying map with id or swap. Case on 𝑒(𝗍𝗍) and 𝑒(𝖿𝖿) (𝟐-induction): the two “constant” cases are impossible, since an equivalence is injective and 𝗍𝗍≠𝖿𝖿 (theorem 29.14); in the remaining cases 𝖿𝗎𝗇𝖾𝗑𝗍 identifies 𝑒’s map with id or swap pointwise. Commutation: for 𝑒,𝑒′∈{id,swap}, if either is id the composites agree judgmentally, and if both are swap the two composites send 𝗍𝗍 to 𝗍𝗍 and 𝖿𝖿 to 𝖿𝖿; Boolean induction and 𝖿𝗎𝗇𝖾𝗑𝗍 identify each with id𝟐. ◻
Proof of Theorem 66.62 — Quasi-inversion is not a proposition
Proof. Take 𝐴:=𝐵:=𝑋, the type of two-element types of lemma 66.49, and 𝑓:=id𝑋. The triple (id𝑋,(𝜆𝑥.𝗋𝖾𝖿𝗅𝑥,𝜆𝑥.𝗋𝖾𝖿𝗅𝑥)) inhabits 𝗊𝗂𝗇𝗏(id𝑋). By lemma 66.59 it suffices to show that ∏𝑥:𝑋𝑥=𝑋𝑥 is not a proposition (corollary 66.14).
Apply lemma 66.60 with 𝑎:=𝑥0 and 𝑞 the loop corresponding to swap. Hypothesis (1) is lemma 66.49(3); (2) is lemma 66.49(1). For centrality (3): the equivalence ℎ:(𝑥0=𝑋𝑥0)≃(𝟐≃𝟐) of lemma 66.49(2) sends concatenation to composition — 𝖺𝗉𝗉𝗋1 preserves ⋅ (lemma 66.5(2)) and 𝗂𝖽𝗍𝗈𝖾𝗊𝗏(𝑟⋅𝑠)=𝗂𝖽𝗍𝗈𝖾𝗊𝗏(𝑠)∘𝗂𝖽𝗍𝗈𝖾𝗊𝗏(𝑟) by path induction — so for 𝑝:𝑥0=𝑋𝑥0, ℎ(𝑝⋅𝑞)=ℎ(𝑞)∘ℎ(𝑝)=ℎ(𝑝)∘ℎ(𝑞)=ℎ(𝑞⋅𝑝) by lemma 66.61, and injectivity of the equivalence ℎ gives 𝑝⋅𝑞=𝑞⋅𝑝.
We obtain 𝑓1:∏𝑥:𝑋𝑥=𝑋𝑥 with 𝑓1(𝑥0)=𝑞. If ∏𝑥:𝑋𝑥=𝑋𝑥 were a proposition, then 𝑓1=𝜆𝑥.𝗋𝖾𝖿𝗅, and 𝗁𝖺𝗉𝗉𝗅𝗒 at 𝑥0 would give 𝑞=𝗋𝖾𝖿𝗅, contradicting lemma 66.49(4). ◻
𝗊𝗂𝗇𝗏(𝑓) contains chosen loop data and therefore need not be a proposition. In contrast, 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓):=∏𝑏:𝐵𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝖿𝗂𝖻𝑓(𝑏)) is a proposition by corollary 66.23. This is why equivalences are defined by contractible fibers.
★★☆ Define bi-invertibility 𝖻𝗂𝗂𝗇𝗏(𝑓):=(∑𝑔:𝐵→𝐴𝑔∘𝑓∼id)×(∑ℎ:𝐵→𝐴𝑓∘ℎ∼id). Show 𝖻𝗂𝗂𝗇𝗏(𝑓)→𝗊𝗂𝗇𝗏(𝑓) and 𝗊𝗂𝗇𝗏(𝑓)→𝖻𝗂𝗂𝗇𝗏(𝑓), and prove that 𝖻𝗂𝗂𝗇𝗏(𝑓)is a proposition. Hint: when inhabited, each factor is contractible.
★★☆ For a map 𝑓:𝐴→𝑃 with 𝑃 a proposition, reconstruct its unique factor through ‖𝐴‖. Repeat for a set-valued map out of the set truncation and identify exactly which path constructor establishes well-definedness.
★★★Practical project.finite-truncation-auditor Implement in Agda or Kappa finite witnesses for contractible types, propositions, and sets. Preserve the invariant that every reported level includes explicit equality witnesses for the preceding level. Classify empty, singleton, Boolean, and a three-element set; reject Boolean as a proposition. Mutation test: deleting the distinct-Boolean check must fail the expected classification suite.
The stratification of types by truncation level is due to Voevodsky, who introduced “h-levels” (numbered from 0 at contractibility; our indexing from −2, following [Uni13], aligns level 𝑛 with homotopy 𝑛-types). The material of §§ 66.1–66.2 follows Chapters 3 and 7 of [Uni13] and Part II of [Rij25]; both sources also develop the closure properties assigned here as exercises. That propositions in the sense of definition 66.4 recover the propositions-as-types reading of Martin-Löf [ML84, ML96] at the level where proofs are unique is the perspective of [AG26], §2.7, whose treatment of squash types in extensional type theory is our definition 35.18; remark 66.34 contrasts the two. Hedberg’s theorem (theorem 66.29) appeared in his 1998 paper on coherence for Martin-Löf type theory; the collapse-lemma proof given here follows the account in [Uni13], §7.2, where the generalizations of axiom K to higher levels may also be found. Kraus, Escardó, Coquand and Altenkirch analyzed weakly constant maps and the strength of lemma 66.27 in detail. The refutation of untruncated excluded middle (theorem 66.43) is due to Coquand (cf. [Uni13], Theorem 3.2.2, of which our proof is the coproduct-transport variant); the failure of choice for non-set bases (theorem 66.50) is [Uni13], Lemma 3.8.5. The consistency of 𝖫𝖤𝖬 and 𝖠𝖢 with univalence rests on the simplicial-set model of Kapulkin and Lumsdaine after Voevodsky; see the notes to Chapter 3 of [Uni13]. Propositional truncation descends from the squash types of NuPRL and the bracket types of Awodey and Bauer; its formulation as a higher inductive type, and the 𝑛-truncations of § 66.6, follow [Uni13], §§3.7 and 7.3, and [Rij25]. The theorem that quasi-inversion is not a proposition (theorem 66.62) is Theorem 4.1.3 of [Uni13]; the type of two-element types used in its proof is the Eilenberg–Mac Lane space 𝐾(ℤ/2,1), and any 𝐾(𝐺,1) for nontrivial abelian 𝐺 would serve. The well-behaved proposition-valued notions of equivalence (half-adjoint, bi-invertible, contractible fibers) are compared at length in [Uni13], Chapter 4, and [Rij25].