exercise 66.1.
For transport along reflexivity, path induction on 𝑝 leaves 𝗍𝗋𝑃𝗋𝖾𝖿𝗅(𝑢) =𝑢, the computation rule for 𝗍𝗋. For composition, induct first on 𝑝 and then on 𝑞; both sides reduce to 𝑢 by the same rule. For 𝖺𝗉, induct on 𝑝: 𝖺𝗉𝑓(𝗋𝖾𝖿𝗅𝑥) ≡𝗋𝖾𝖿𝗅𝑓𝑥 is its computation rule. The inverse and concatenation laws for 𝖺𝗉 then follow by one or two further path inductions, with every base case reflexivity.
exercise 66.2.
From a center 𝑎0 :𝐴 and contraction 𝑎0 =𝑎, the constant map 𝐴 →𝟏 and ∗ ↦𝑎0 are inverse up to homotopy. An equivalence with 𝟏 transports its center and contraction to 𝐴. Finally, an inhabited proposition (𝑎0,ℎ) is contractible with center 𝑎0 and contraction ℎ(𝑎0,𝑎); conversely every contractible type is a proposition by concatenating paths through its center.
exercise 66.3.
Let 𝑥0 be the center of 𝑋 and set 𝑦0 =𝑟(𝑥0). For 𝑦 :𝑌, the contraction path 𝑥0 =𝑠(𝑦) gives 𝖺𝗉𝑟(𝑥0 =𝑠(𝑦)) :𝑦0 =𝑟(𝑠𝑦); concatenate with the retraction homotopy 𝑟(𝑠𝑦) =𝑦. This contracts every 𝑦 to 𝑦0, so 𝑌 is contractible.
exercise 66.4.
Take 𝐴 =𝟎. For any 𝑥,𝑦 :𝐴 there are no such endpoints, so Π𝑥,𝑦:𝐴𝗂𝗌𝖢𝗈𝗇𝗍𝗋(𝑥 =𝑦) is inhabited by empty elimination; nevertheless 𝐴 has no center and is not contractible. Extending the hierarchy below −2 would iterate a vacuous endpoint condition and add no new meaningful property, so contractibility is chosen as the base rather than defining a weaker “−3-type.”
exercise 66.5.
Let (𝑎0,𝑐) contract 𝐴. The maps 𝑃(𝑎0) →Σ𝑥𝑃(𝑥) and back are 𝑢 ↦(𝑎0,𝑢) and (𝑥,𝑣) ↦𝗍𝗋𝑃𝑐(𝑥)−1𝑣. The first round trip is transport along reflexivity. For the second, the base path is 𝑐(𝑥) :𝑎0 =𝑥; its fiber component starts at 𝗍𝗋𝑃𝑐(𝑥)(𝗍𝗋𝑃𝑐(𝑥)−1𝑣) and ends at 𝑣. Thus inverse transport must occur first and forward transport second; functoriality and 𝑐(𝑥)−1 ⋅𝑐(𝑥) =𝗋𝖾𝖿𝗅 give the required fiber path.
exercise 66.6.
Regard 𝐴 ×𝐵 as the constant-family sum Σ𝑎:𝐴𝐵 and apply closure of 𝑛-types under Σ. For 𝑛 =0, the Σ-path theorem gives ((𝑎,𝑏) =(𝑎′,𝑏′)) ≃Σ𝑝:𝑎=𝑎′(𝑏 =𝑏′). Since 𝐴 and 𝐵 are sets, both the base path type and every fiber path type are propositions; a Σ of a proposition with propositional fibers is a proposition.
exercise 66.7.
Coproduct encode–decode identifies same-summand paths with paths in 𝐴 or 𝐵 and mixed-summand paths with 𝟎. For 𝑛 ≥0, these code types are (𝑛 −1)-types, so every identity type of 𝐴 +𝐵 is an (𝑛 −1)-type and 𝐴 +𝐵 is an 𝑛-type. At 𝑛 = −1 take 𝐴 =𝐵 =𝟏: both summands are propositions but 𝟏 +𝟏 ≃𝟐 has two distinct points and is not a proposition.
exercise 66.8.
Let 𝑟 :𝑋 →𝑌, 𝑠 :𝑌 →𝑋, and 𝜖 :𝑟𝑠 ∼id𝑌, with 𝑋 a proposition. For 𝑦,𝑦′ :𝑌, concatenate 𝜖−1𝑦, the path 𝖺𝗉𝑟(ℎ(𝑠𝑦,𝑠𝑦′)) supplied by propositionality of 𝑋, and 𝜖𝑦′. This yields 𝑦 =𝑦′, so 𝑌 is a proposition.
exercise 66.9.
The function type 𝐴 →𝐵 is a set because its pointwise identity types are propositions and function extensionality transfers that fact to paths of functions. Now 𝐴 ≃𝐵 =Σ𝑓:𝐴→𝐵𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓). The base is a set and each 𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) is a proposition, so closure of sets under dependent sums makes 𝐴 ≃𝐵 a set.
exercise 66.10.
Define 𝑑 by double recursion. Set 𝑑(0,0) =𝗂𝗇𝗅(𝗋𝖾𝖿𝗅); the cases (0,𝗌𝗎𝖼𝑛) and (𝗌𝗎𝖼𝑚,0) are negative because the path-code theorem maps such a path to 𝟎. For successors, map a positive path by 𝖺𝗉𝗌𝗎𝖼 and map a negative witness 𝑘 to 𝑝 ↦𝑘(𝗌𝗎𝖼𝖨𝗇𝗃𝖾𝖼𝗍𝗂𝗏𝖾(𝑝)). The same path-code theorem supplies successor injectivity, so all four clauses are total.
exercise 66.11.
Fix 𝑥 :𝑋 and use 𝖩 on 𝑝 :𝑥 =𝑥 with motive 𝐶(𝑦,𝑝):=∏𝑞:𝑥=𝑦:𝑝=𝑞. At 𝑦 =𝑥,𝑝 =𝗋𝖾𝖿𝗅𝑥, the branch is 𝜆𝑞. ℎ(𝗋𝖾𝖿𝗅𝑥,𝑞), where ℎ is the hypothesis that each path type is a proposition. Thus 𝖩(𝐶, −,𝑥,𝑝)(𝑞) :𝑝 =𝑞. The computation rule at 𝑝 =𝗋𝖾𝖿𝗅 is judgmental, and abstracting over 𝑥,𝑝,𝑞 gives 𝐾.
exercise 66.13.
Propositional-truncation recursion defines ‖𝑓‖(|𝑎|) =|𝑓(𝑎)|; the target is a proposition, so it supplies all path coherence. Identity and composition follow by function extensionality and truncation induction. The map ‖𝐴 ×𝐵‖ →‖𝐴‖ ×‖𝐵‖ uses the two projections. For the inverse, eliminate first from ‖𝐴‖ and then from ‖𝐵‖ into the proposition ‖𝐴 ×𝐵‖, sending (𝑎,𝑏) to |(𝑎,𝑏)|. Truncation induction proves the round trips.
exercise 66.14.
Flatten ‖‖𝐴‖‖ by truncation recursion extending the identity on ‖𝐴‖; its inverse is the constructor 𝑡 ↦|𝑡|. Both composites agree by truncation induction into propositions. Similarly, the unique map ‖𝟏‖ →𝟏 and ∗ ↦| ∗| are inverse: one composite is judgmental and the other follows because ‖𝟏‖ is a proposition.
exercise 66.15.
Dependent truncation elimination sends 𝑓 :Π𝑎:𝐴𝑄(|𝑎|) to ¯𝑓 :Π𝑡:‖𝐴‖𝑄(𝑡) with the specified constructor computation. Precomposition is one inverse by that computation. For the other, dependent function extensionality reduces equality of sections to pointwise equality, and every 𝑄(𝑡) is a proposition. Hence the precomposition map is an equivalence, with inverse dependent elimination.
exercise 66.16.
Suppose 𝑠𝐴 :‖𝐴‖ →𝐴 were polymorphic. Naturality under equivalences, obtained by identity induction in the universe, says that for the Boolean swap 𝑒, 𝑒(𝑠𝟐(𝑡)) =𝑠𝟐(‖𝑒‖(𝑡)). Since ‖𝟐‖ is a proposition, ‖𝑒‖ is the identity. Thus 𝑠𝟐(𝑡) is fixed by swap. Boolean case analysis shows neither constructor is fixed, a contradiction. Therefore no such polymorphic family exists.
exercise 66.12.
For fixed 𝑥,𝑦, a decision of 𝑥 =𝑦 determines the usual weakly constant endomap of 𝑥 =𝑦: return the chosen positive proof, or eliminate a supplied path against the negative branch. The type asserting weak constancy is a proposition, so the merely given decision can be untruncated into such an endomap. The collapse lemma makes 𝑥 =𝑦 a proposition. Since this holds for all 𝑥,𝑦, 𝑋 is a set.
exercise 66.17.
From a choice function 𝑐 :Π𝑥‖𝑃(𝑥)‖ →𝑃(𝑥), map 𝑔 :Π𝑥‖𝑃(𝑥)‖ to 𝑥 ↦𝑐𝑥(𝑔𝑥) and then truncate the resulting section. Conversely, given ‖Π𝑥𝑃(𝑥)‖, eliminate it into the proposition Π𝑥‖𝑃(𝑥)‖ and send 𝑓 to 𝑥 ↦|𝑓(𝑥)|. Both composites are equal because their codomains are propositions. These maps establish the stated equivalence between the two choice formulations.
exercise 66.18.
LEM implies double-negation elimination: for propositional 𝐴, split on 𝐴 +¬𝐴; the positive branch returns its witness and the negative branch contradicts ¬¬𝐴. Conversely apply the restricted principle to the proposition 𝐴 +¬𝐴 and the constructively provable ¬¬(𝐴 +¬𝐴). This yields 𝐴 +¬𝐴 for every proposition 𝐴, which is LEM in its proposition-restricted form.
exercise 66.19.
For 𝑢,𝑣 :𝐴 +¬𝐴, eliminate on both. Two positive cases agree because 𝐴 is a proposition; two negative cases agree by function extensionality into 𝟎; mixed cases are impossible because the negative witness applies to the positive one. Hence 𝐴 +¬𝐴 is a proposition. A dependent product of propositions is a proposition, so Π𝐴:U(𝗂𝗌𝖯𝗋𝗈𝗉(𝐴) →𝐴 +¬𝐴) is a proposition.
exercise 66.20.
The constructor map 𝑃 +𝑄 →‖𝑃 +𝑄‖ =𝑃 ∨𝑄 is one direction. Because 𝑃 +𝑄 is a proposition under the disjointness hypothesis—same-side paths use propositionality and mixed sides contradict ¬(𝑃 ×𝑄)— truncation elimination supplies 𝑃 ∨𝑄 →𝑃 +𝑄. The two composites are equal by propositionality, so the maps form an equivalence.
exercise 66.21.
Since ‖𝐴‖𝑚 is an 𝑚-type and hence an 𝑛-type for 𝑚 ≤𝑛, the 𝑛-truncation eliminator extends the constructor 𝐴 →‖𝐴‖𝑚 to a map ‖𝐴‖𝑛 →‖𝐴‖𝑚. Applying 𝑚-truncation gives ‖‖𝐴‖𝑛‖𝑚 →‖𝐴‖𝑚. The inverse is induced by 𝑎 ↦| |𝑚(|𝑎|𝑛). Truncation induction and the uniqueness of maps into an 𝑚-type prove both composites equal to the identity.
exercise 66.22.
For 𝑓 :𝐴 →𝐵, recursion into the 𝑛-type ‖𝐵‖𝑛 defines ‖𝑓‖𝑛(|𝑎|𝑛) =|𝑓(𝑎)|𝑛; uniqueness proves the identity and composition laws. The projections define a map from ‖(‖𝑛𝐴 ×𝐵) to the product of truncations. The reverse map is obtained by eliminating successively from both truncations into the 𝑛-type ‖(‖𝑛𝐴 ×𝐵) and pairing representatives. Successive truncation inductions prove the two round trips.
exercise 66.23.
If 𝐴 is connected, ‖𝐴‖ is inhabited and each ‖𝑥 =𝑦‖ is inhabited by the definition of 0-connectedness. In the other direction choose merely 𝑎0 :𝐴. For any 𝑥 :𝐴, the assumed ‖𝑎0 =𝑥‖ shows that every two points have the same image in the set truncation; hence ‖𝐴‖0 is an inhabited proposition and therefore contractible. This is precisely connectedness.
exercise 66.24.
An equivalence is injective: if 𝑒𝑥 =𝑒𝑦, apply its inverse and the two section paths to obtain 𝑥 =𝑦. Case-analyze 𝑒(𝗍𝗍). If it is 𝗍𝗍, injectivity excludes 𝑒(𝖿𝖿) =𝗍𝗍, so Boolean exhaustiveness forces 𝑒(𝖿𝖿) =𝖿𝖿 and function extensionality gives 𝑒 =id. If it is 𝖿𝖿, the same argument forces the other value to be 𝗍𝗍, giving 𝑒 =𝑒𝗇𝗈𝗍. These cases are mutually exclusive by Boolean separation.
exercise 66.25.
A quasi-inverse supplies both factors by taking the same inverse. From a left inverse 𝑔 and a right inverse ℎ, naturality of the homotopies gives 𝑔 ≃ℎ; replace one by the other to obtain a quasi-inverse. When 𝑓 is an equivalence, each type Σ𝑔(𝑔𝑓 ≃id) and Σℎ(𝑓ℎ ≃id) is contractible: its center is the inverse extracted from the contractible fibers, and inverse maps with the indicated law are unique. Their product is contractible, hence a proposition. If it is empty it is also a proposition, so 𝖻𝗂𝗂𝗇𝗏(𝑓) is always a proposition.
exercise 66.26.
There is a canonical map 𝗊𝗂𝗇𝗏(𝑓) →𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓), hence by truncation elimination a map ‖𝗊𝗂𝗇𝗏(𝑓)‖ →𝗂𝗌𝖤𝗊𝗎𝗂𝗏(𝑓) because the target is a proposition. Conversely, an equivalence has a chosen inverse extracted from its fiber centers, so it gives |𝑞| in the truncated quasi-inverse type. Both types are propositions and the two maps preserve their inhabitants, hence they are inverse equivalences.
exercise 195.27.
Propositional-truncation elimination gives ¯𝑓 :‖𝐴‖ →𝑃 with ¯𝑓(|𝑎|) ≡𝑓(𝑎). If 𝑔 is another factor, function extensionality reduces 𝑔 =¯𝑓 to pointwise equality, supplied by 𝗂𝗌𝖯𝗋𝗈𝗉(𝑃). For 𝑓 :𝐴 →𝑆 with 𝑆 a set, the set-truncation eliminator analogously gives ¯𝑓 :‖𝐴‖0 →𝑆. Its only higher coherence compares the images of two parallel paths; the constructor 𝗌𝗊0(𝑝,𝑞) supplies that comparison, and 𝗂𝗌𝖲𝖾𝗍(𝑆) makes the required equality of paths unique.