7.3 Truncations
In §3.7 (http://planetmath.org/37propositionaltruncation) we introduced the propositional truncation, which makes the “best approximation” of a type that is a mere
proposition, i.e. a (-1)-type.
In §6.9 (http://planetmath.org/69truncations) we constructed this truncation as a higher inductive type, and gave one way to generalize it to a
0-truncation.
We now explain a better generalization of this, which truncates any type into an n-type for any n≥-2; in classical homotopy theory this would be called its nth Postnikov section.
The idea is to make use of (http://planetmath.org/72uniquenessofidentityproofsandhedbergstheorem# utoref), which states that A is an n-type just when Ωn+1(A,a)
is contractible for
all a:A, and Lemma 6.5.4 (http://planetmath.org/65suspensions#Thmprelem3), which implies that
Ωn+1(A,a)≃𝖬𝖺𝗉*(𝕊n+1,(A,a)), where 𝕊n+1 is equipped with some basepoint which we may as well call 𝖻𝖺𝗌𝖾.
However, contractibility of 𝖬𝖺𝗉*(𝕊n+1,(A,a)) is something that we can ensure directly by giving path constructors.
We might first of all try to define ∥A∥n to be generated by a function |–|n:A→∥A∥n, together with for each r:𝕊n+1→∥A∥n and each x:𝕊n+1, a path sr(x):r(x)=r(𝖻𝖺𝗌𝖾). But this does not quite work, for the same reason that Remark 6.7.1 (http://planetmath.org/67hubsandspokes#Thmprermk1) fails. Instead, we use the full “hub and spoke” construction as in §6.7 (http://planetmath.org/67hubsandspokes).
Thus, for n≥-1, we take ∥A∥n to be the higher inductive type generated by:
-
•
a function |–|n:A→∥A∥n,
-
•
for each r:𝕊n+1→∥A∥n, a hub point h(r):∥A∥n, and
-
•
for each r:𝕊n+1→∥A∥n and each x:𝕊n+1, a spoke path sr(x):r(x)=h(r).
The existence of these constructors is now enough to show:
Lemma 7.3.1.
∥A∥n is an n-type.
Proof.
By (http://planetmath.org/72uniquenessofidentityproofsandhedbergstheorem# utoref), it suffices to show that Ωn+1(∥A∥n,b) is contractible for all b:∥A∥n, which by
Lemma 6.5.4 (http://planetmath.org/65suspensions#Thmprelem3) is equivalent to 𝖬𝖺𝗉*(𝕊n+1,(∥A∥n,b)).
As center of contraction for the latter, we choose the function cb:𝕊n+1→∥A∥n which is constant at b, together with
𝗋𝖾𝖿𝗅b:cb(𝖻𝖺𝗌𝖾)=b.
Now, an arbitrary element of 𝖬𝖺𝗉*(𝕊n+1,(∥A∥n,b)) consists of a map r:𝕊n+1→∥A∥n together with a path p:r(𝖻𝖺𝗌𝖾)=b. By function extensionality, to show r=cb it suffices to give, for each x:𝕊n+1, a path r(x)=cb(x)≡b. We choose this to be the composite sr(x)\centerdotsr(𝖻𝖺𝗌𝖾)-1\centerdotp, where sr(x) is the spoke at x.
Finally, we must show that when transported along this equality r=cb, the path p becomes 𝗋𝖾𝖿𝗅b. By transport in path types, this means we need
(sr(𝖻𝖺𝗌𝖾)\centerdotsr(𝖻𝖺𝗌𝖾)-1\centerdotp)-1\centerdotp=𝗋𝖾𝖿𝗅b. |
But this is immediate from path operations.
∎
(This construction fails for n=-2, but in that case we can simply define ∥A∥-2:≡𝟏 for all A. From now on we assume n≥-1.)
To show the desired universal property of the n-truncation, we need the induction
principle.
We extract this from the constructors in the usual way; it says that given P:∥A∥n→𝒰 together with
-
•
For each a:A, an element g(a):P(|a|n),
-
•
For each r:𝕊n+1→∥A∥n and r′:∏(x:𝕊n+1)P(r(x)), an element h′(r,r′):P(h(r)),
-
•
For each r:𝕊n+1→∥A∥n and r′:∏(x:𝕊n+1)P(r(x)), and each x:𝕊n+1, a dependent path r′(x)=Psr(x)h′(r,r′),
there exists a section f:∏(x:∥A∥n)P(x) with f(|a|n)≡g(a) for all a:A.
To make this more useful, we reformulate it as follows.
Theorem 7.3.2.
For any type family P:∥A∥n→U such that each P(x) is an n-type, and any function g:∏(a:A)P(|a|n), there exists a section f:∏(x:∥A∥n)P(x) such that f(|a|n):≡g(a) for all a:A.
Proof.
It will suffice to construct the second and third data listed above, since g has exactly the type of the first datum. Given r:𝕊n+1→∥A∥n and r′:∏(x:𝕊n+1)P(r(x)), we have h(r):∥A∥n and sr:∏(x:𝕊n+1)(r(x)=h(r)). Define t:𝕊n+1→P(h(r)) by t(x):≡sr(x)*(r′(x)). Then since P(h(r)) is n-truncated, there exists a point u:P(h(r)) and a contraction v:∏(x:𝕊n+1)(t(x)=u). Define h′(r,r′):≡u, giving the second datum. Then (recalling the definition of dependent paths), v has exactly the type required of the third datum. ∎
In particular, if E is some n-type, we can consider the constant family of types equal to E for every point of A. Thus, every map f:A→E can be extended to a map 𝖾𝗑𝗍(f):∥A∥n→E defined by 𝖾𝗑𝗍(f)(|a|n):≡f(a); this is the recursion principle for ∥A∥n.
The induction principle also implies a uniqueness principle for functions of this form. Namely, if E is an n-type and g,g′:∥A∥n→E are such that g(|a|n)=g′(|a|n) for every a:A, then g(x)=g′(x) for all x:∥A∥n, since the type g(x)=g′(x) is an n-type. Thus, g=g′. This yields the following universal property.
Lemma 7.3.3 (Universal property of truncations).
Let n≥-2, A:U and B:n-Type. The following map is an equivalence:
{(∥A∥n→B)⟶(A→B)g⟼g∘|–|n |
Proof.
Given that B is n-truncated, any f:A→B can be extended to a map 𝖾𝗑𝗍(f):∥A∥n→B. The map 𝖾𝗑𝗍(f)∘|–|n is equal to f, because for every a:A we have 𝖾𝗑𝗍(f)(|a|n)=f(a) by definition. And the map 𝖾𝗑𝗍(g∘|–|n) is equal to g, because they both send |a|n to g(|a|n). ∎
In categorical language
, this says that the n-types form a reflective subcategory of the category
of types.
(To state this fully precisely, one ought to use the language of (∞,1)-categories.)
In particular, this implies that the n-truncation is functorial:
given f:A→B, applying the recursion principle to the composite A𝑓→B→∥B∥n yields a map ∥f∥n:∥A∥n→∥B∥n.
By definition, we have a homotopy
𝗇𝖺𝗍fn:∏a:A∥f∥n(|a|n)=|f(a)|n, | (7.3.4) |
expressing naturality of the maps |–|n.
Uniqueness implies functoriality laws such as ∥g∘f∥n=∥g∥n∘∥f∥n and ∥𝗂𝖽A∥n=𝗂𝖽∥A∥n, with attendant coherence laws. We also have higher functoriality, for instance:
Lemma 7.3.5.
Given f,g:A→B and a homotopy h:f∼g, there is an induced homotopy ∥h∥n:∥f∥n∼∥g∥n such that the composite
\includegraphicsHoTTfig7.3.1.png | (7.3.5) |
is equal to ap|–|n(h(a)).
Proof.
First, we indeed have a homotopy with components 𝖺𝗉|–|n(h(a)):|f(a)|n=|g(a)|n. Composing on either sides with the paths |f(a)|n=∥f∥n(|a|n) and |g(a)|n=∥g∥n(|a|n), which arise from the definitions of ∥f∥n and ∥g∥n, we obtain a homotopy (∥f∥n∘|–|n)∼(∥g∥n∘|–|n), and hence an equality by function extensionality. But since (–∘|–|n) is an equivalence, there must be a path ∥f∥n=∥g∥n inducing it, and the coherence laws for function extensionality imply (7.3.5). ∎
The following observation about reflective subcategories is also standard.
Corollary 7.3.7.
A type A is an n-type if and only if |–|n:A→∥A∥n is an equivalence.
Proof.
“If” follows from closure of n-types under equivalence.
On the other hand, if A is an n-type, we can define 𝖾𝗑𝗍(𝗂𝖽A):∥A∥n→A.
Then we have 𝖾𝗑𝗍(𝗂𝖽A)∘|–|n=𝗂𝖽A:A→A by
definition. In order to prove that
|–|n∘𝖾𝗑𝗍(𝗂𝖽A)=𝗂𝖽∥A∥n, we only need to prove
that |–|n∘𝖾𝗑𝗍(𝗂𝖽A)∘|–|n=𝗂𝖽∥A∥n∘|–|n.
This is again true:
HoTT_fig_7.3.2.png
∎
The category of n-types also has some special properties not possessed by all reflective subcategories.
For instance, the reflector ∥-∥n preserves finite products.
Theorem 7.3.8.
For any types A and B, the induced map ∥A×B∥n→∥A∥n×∥B∥n is an equivalence.
Proof.
It suffices to show that ∥A∥n×∥B∥n has the same universal property as ∥A×B∥n. Thus, let C be an n-type; we have
(∥A∥n×∥B∥n→C) | =(∥A∥n→(∥B∥n→C)) | ||
=(∥A∥n→(B→C)) | |||
=(A→(B→C)) | |||
=(A×B→C) |
using the universal properties of ∥B∥n and ∥A∥n, along with the fact that B→C is an n-type since C is. It is straightforward to verify that this equivalence is given by composing with |–|n×|–|n, as needed. ∎
The following related fact about dependent sums is often useful.
Theorem 7.3.9.
Let P:A→U be a family of types. Then there is an equivalence
∥∑x:A∥P(x)∥n∥n≃∥∑x:AP(x)∥n. |
Proof.
We use the induction principle of n-truncation several times to construct functions
φ | :∥∑x:A∥P(x)∥n∥n→∥∑x:AP(x)∥n | ||
ψ | :∥∑x:AP(x)∥n→∥∑x:A∥P(x)∥n∥n |
and homotopies H:φ∘ψ∼𝗂𝖽 and K:ψ∘φ∼𝗂𝖽 exhibiting them as quasi-inverses. We define φ by setting φ(|(x,|u|n)|n):≡|(x,u)|n. We define ψ by setting ψ(|(x,u)|n):≡|(x,|u|n)|n. Then we define H(|(x,u)|n):≡𝗋𝖾𝖿𝗅|(x,u)|n and K(|(x,|u|n)|n):≡𝗋𝖾𝖿𝗅|(x,|u|n)|n. ∎
Corollary 7.3.10.
If A is an n-type and P:A→U is any type family, then
∑a:A∥P(a)∥n≃∥∑a:AP(a)∥n |
Proof.
If A is an n-type, then the left-hand type above is already an n-type, hence equivalent to its n-truncation; thus this follows from Theorem 7.3.9 (http://planetmath.org/73truncations#Thmprethm3). ∎
We can characterize the path spaces of a truncation using the same method that we used in §2.12 (http://planetmath.org/212coproducts),§2.13 (http://planetmath.org/213naturalnumbers) for
coproducts and natural numbers
(and which we will use in http://planetmath.org/node/87582Chapter 8 to calculate homotopy groups
).
Unsurprisingly, the path spaces in the (n+1)-truncation of A are the n-truncations of the path spaces of A.
Indeed, for any x,y:A there is a canonical map
f:∥x=Ay∥n→(|x|n+1=∥A∥n+1|y|n+1) | (7.3.11) |
defined by
f(|p|n):≡𝖺𝗉|–|n+1(p). |
This definition uses the recursion principle for ∥–∥n, which is correct because ∥A∥n+1 is (n+1)-truncated, so that the codomain of f is n-truncated.
Theorem 7.3.12.
For any A and x,y:A and n≥-2, the map (7.3.11) is an equivalence; thus we have
∥x=Ay∥n≃(|x|n+1=∥A∥n+1|y|n+1). |
Proof.
The proof is a simple application of the encode-decode method: As in previous situations, we cannot directly define a quasi-inverse to the map (7.3.11) because there is no way to induct on an equality between |x|n+1 and |y|n+1. Thus, instead we generalize its type, in order to have general elements of the type ∥A∥n+1 instead of |x|n+1 and |y|n+1. Define P:∥A∥n+1→∥A∥n+1→n-𝖳𝗒𝗉𝖾 by
P(|x|n+1,|y|n+1):≡∥x=Ay∥n |
This definition is correct because ∥x=Ay∥n is n-truncated, and n-𝖳𝗒𝗉𝖾 is (n+1)-truncated by Theorem 7.1.11 (http://planetmath.org/71definitionofntypes#Thmprethm7). Now for every u,v:∥A∥n+1, there is a map
𝖾𝗇𝖼𝗈𝖽𝖾:P(u,v)→(u=∥A∥n+1v) |
defined for u=|x|n+1 and v=|y|n+1 and p:x=y by
𝖾𝗇𝖼𝗈𝖽𝖾(|p|n):≡𝖺𝗉|¯|n+1(p). |
Since the codomain of 𝖾𝗇𝖼𝗈𝖽𝖾 is n-truncated, it suffices to define it only for u and v of this form, and then it’s just the same definition as before. We also define a function
r:∏u:∥A∥n+1P(u,u) |
by induction on u, where r(|x|n+1):≡|𝗋𝖾𝖿𝗅x|n.
Now we can define an inverse map
𝖽𝖾𝖼𝗈𝖽𝖾:(u=∥A∥n+1v)→P(u,v) |
by
𝖽𝖾𝖼𝗈𝖽𝖾(p):≡𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍v↦P(u,v)(p,r(u)). |
To show that the composite
(u=∥A∥n+1v)𝖽𝖾𝖼𝗈𝖽𝖾→P(u,v)𝖾𝗇𝖼𝗈𝖽𝖾→(u=∥A∥n+1v) |
is the identity function, by path induction it suffices to check it for 𝗋𝖾𝖿𝗅u:u=u, in which case what we need to know is that 𝖽𝖾𝖼𝗈𝖽𝖾(r(u))=𝗋𝖾𝖿𝗅u. But since this is an n-type, hence also an (n+1)-type, we may assume u≡|x|n+1, in which case it follows by definition of r and 𝖽𝖾𝖼𝗈𝖽𝖾. Finally, to show that
P(u,v)𝖾𝗇𝖼𝗈𝖽𝖾→(u=∥A∥n+1v)𝖽𝖾𝖼𝗈𝖽𝖾→P(u,v) |
is the identity function, since this goal is again an n-type, we may assume that u=|x|n+1 and v=|y|n+1 and that we are considering |p|n:P(|x|n+1,|y|n+1) for some p:x=y. Then we have
𝖽𝖾𝖼𝗈𝖽𝖾(𝖾𝗇𝖼𝗈𝖽𝖾(|p|n)) | =𝖽𝖾𝖼𝗈𝖽𝖾(𝖺𝗉|¯|n+1(p)) | ||
=𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍v↦P(|x|n+1,v)(𝖺𝗉|¯|n+1(p),|𝗋𝖾𝖿𝗅x|n) | |||
=𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍v↦∥u=v∥n(p,|𝗋𝖾𝖿𝗅x|n) | |||
=|𝗍𝗋𝖺𝗇𝗌𝗉𝗈𝗋𝗍v↦(u=v)(p,𝗋𝖾𝖿𝗅x)|n | |||
=|p|n. |
This completes the proof that 𝖾𝗇𝖼𝗈𝖽𝖾 and 𝖽𝖾𝖼𝗈𝖽𝖾 are quasi-inverses.
The stated result is then the special case where u=|x|n+1 and v=|y|n+1.
∎
Corollary 7.3.13.
Let n≥-2 and (A,a) be a pointed type. Then
∥Ω(A,a)∥n=Ω(∥(A,a)∥n+1) |
Proof.
This is a special case of the previous lemma where x=y=a. ∎
Corollary 7.3.14.
Let n≥-2 and k≥0 and (A,a) a pointed type. Then
∥Ωk(A,a)∥n=Ωk(∥(A,a)∥n+k). |
Proof.
By induction on k, using the recursive definition of Ωk. ∎
We also observe that “truncations are cumulative”: if we truncate to an n-type and then to a k-type with k≤n, then we might as well have truncated directly to a k-type.
Lemma 7.3.15.
Let k,n≥-2 with k≤n and A:U. Then ∥∥A∥n∥k=∥A∥k.
Proof.
We define two maps f:∥∥A∥n∥k→∥A∥k and g:∥A∥k→∥∥A∥n∥k by
f(||a|n|k):≡|a|k |
The map is well-defined because is -truncated and also -truncated (because ), and the map is well-defined because is -truncated.
The composition satisfies , hence . Similarly, we have and hence . ∎
Title | 7.3 Truncations |
---|---|
\metatable |