module Homotopy.Space.Suspension.Freudenthal where
Freudenthal suspension theoremπ
Recall that, if
is a pointed type1,
the unit of the suspensionβloop space
adjunction is a map
denoted suspend
in code. If weβre
considering
based at some other point
we will write
instead.
The Freudenthal suspension theorem gives a bound on the failure of this map to be an isomorphism. Precisely, it says that if is connected with then the suspension map is As a corollary, it induces an equivalence of truncations
-- this line is unfortunately long but layout stacking doesn't work
-- unless it's all together like this :(
module freudenthal {β} (Aβ@(A , aβ) : Typeβ β) (n : Nat) (conn : is-n-connected A (2 + n)) (let 2n = (suc n) + (suc n)) where
_β₯ββ : β {β} β Type β β Type β
β₯= n-Tr A 2n β₯ A β₯ββ
The proof we present is natively cubical, but the outline is the same
as the HoTT book proof (2013,
sec. 8.6): we will define a family code
over a point
and path
satisfying
and then show that
is contractible at each
We will start by giving a family of equivalences
over
between the truncated fibres
and
over some
We start by constructing an element of the latter fibre under the
assumptions that
and
By the wedge connectivity lemma, it will
suffice to do so when
and
as long as our constructions agree when
When
we can show
with the final step by our assumption of
and when
we are immediately done. To show that these agree, we simply have to
prove that the round-trip between
is the identity when
but we can easily arrange for those steps to cancel in this case.
module wc (p : north β‘ north) =
{Aβ = Aβ} {Aβ} {Ξ» a b β suspend Aβ b β‘ p β β₯ fibre (suspend (A , a)) p β₯ββ}
Wedge (Ξ» x y β hlevel 2n)
n n conn conn (Ξ» a q β inc (a , β-invr (merid a) β sym (β-invr (merid aβ)) β q))
(Ξ» a q β inc (a , q))
(funext Ξ» x β ap (Ξ» e β n-Tr.inc {n = 2n} (aβ , e))
(β-cancell (sym (β-invr (merid aβ))) x))
By truncation recursion, we can extend this to the function between fibres we promised. Since being an equivalence is a proposition and is it will suffice to show that is an equivalence; but in this case is the identity, so we are done.
: β p a β β₯ fibre (suspend Aβ) p β₯ββ β β₯ fibre (suspend (A , a)) p β₯ββ
fwd = elim! wc.elim
fwd
: β p a β is-equiv (fwd p a) fwd-is-equiv
Actually invoking these lemmas takes a bit of bureaucracy.
.is-eqv =
fwd-is-equiv p a let
= relative-n-type-const
eqv (Ξ» a β β t β is-contr (fibre (fwd p a) t))
(Ξ» _ β aβ) (suc n) (point-is-n-connected aβ n conn)
(Ξ» x β hlevel (suc n))
: β a (t : n-Tr (fibre (suspend Aβ) p) 2n)
it β is-contr (fibre (fwd p aβ) t)
= elim! Ξ» _ x q β
it (Ξ» e β is-contr (fibre e (inc (x , q)))) {x = id} {y = _}
subst (funext (elim! Ξ» x β sym β happly (wc.Ξ²β p x)))
Singleton'-is-contrin Equiv.from (_ , eqv) it a
We can then use this equivalence to define the code
family. Here is when cubical type
theory allows a significant simplification over book HoTT: we can
directly glue
our equivalence along a dependent identification interpolate
between suspend
and merid
, as in the diagram below (where we
write
for inv
and
for interpolate
).
Constructing this dependent identification is very easy, and so everything falls together as usual.
interpolate: β {β} {A : Type β} (a : A)
β PathP (Ξ» i β A β north β‘ merid a i) (suspend (A , a)) merid
= β-filler (merid x) (sym (merid a)) (~ i) j
interpolate a i x j
: (y : Susp A) β north β‘ y β Type β
code = β₯ fibre (suspend Aβ) p β₯ββ
code north p = β₯ fibre merid p β₯ββ
code south p (merid a i) p = Glue β₯ fibre (interpolate a i) p β₯ββ Ξ» where
code (i = i0) β β₯ fibre (suspend Aβ) p β₯ββ , fwd p a , fwd-is-equiv p a
(i = i1) β β₯ fibre merid p β₯ββ , idβ
By path induction, each
is inhabited. We will now show that each
is contractible, with centre the encoding
of
By truncation induction we can assume we have
and
and by path induction on
we can assume
is
so that our goal is showing
is
This is a simple, if tedious, calculation.
: (y : Susp A) (p : north β‘ y) β code y p
encode = J code (inc (aβ , β-invr (merid aβ)))
encode y
: β p (c : β₯ fibre merid p β₯ββ) β encode south p β‘ c
encode-paths = elim! Ξ» a β J (Ξ» p r β encode south p β‘ inc (a , r))
encode-paths p let
= n-Tr (fibre (interpolate a i) (Ξ» j β merid a (i β§ j))) 2n
gp i
=
remβ .elim refl a aβ (β-invr (merid aβ))
wc(wc.Ξ²β refl a) (β-invr (merid aβ)) β©
β‘β¨ happly (a , β-invr (merid a) β sym (β-invr (merid aβ)) β β-invr (merid aβ))
inc (Ξ» e β n-Tr.inc (a , e)) (β-elimr (β-invl (β-invr (merid aβ)))) β©
β‘β¨ ap (a , β-invr (merid a))
inc
β
=
remβ (fwd refl a (inc (aβ , β-invr (merid aβ))))
transport gp (transport gp) remβ β©
β‘β¨ ap (inc (a , β-invr (merid a)))
transport gp {A = Ξ» i β gp i} (Ξ» i β inc (a , Ξ» j k β β-invr-filler (merid a) j k (~ i))) β©
β‘β¨ from-pathp (a , refl) β
inc in remβ
By definition, this proof shows that
is an
connected map, because the
of its fibres are contractible. We have also essentially already shown
our main theorem, since we have an identification between the fibres of
merid
and those of suspend
.
: is-n-connected-map merid 2n
merid-is-n-connected = n-connected.from (n + suc n) record
merid-is-n-connected x { centre = encode south x
; paths = encode-paths x
}
module
_ {β} {Aβ@(A , aβ) : Typeβ β} (n : Nat) (conn : is-n-connected A (2 + n)) where
open freudenthal Aβ n conn
: is-n-connected-map (suspend Aβ) (suc n + suc n)
suspend-is-n-connected = transport
suspend-is-n-connected (Ξ» i β is-n-connected-map (Ξ» z β interpolate aβ (~ i) z) (suc n + suc n))
merid-is-n-connected
freudenthal-equivalence: n-Trβ Aβ (suc n + suc n) ββ n-Trβ (Ξ©βΏ 1 (Σ¹ Aβ)) (suc n + suc n)
.fst .fst = _
freudenthal-equivalence .fst .snd = is-n-connected-mapβis-equiv-tr
freudenthal-equivalence _ _ suspend-is-n-connected
.snd = ap n-Tr.inc (β-invr (merid aβ)) freudenthal-equivalence
Throughout this page we will fix a pointed type with basepoint and we will omit the distinction between and its underlying type.β©οΈ
References
- Univalent Foundations Program, The. 2013. Homotopy Type Theory: Univalent Foundations of Mathematics. Institute for Advanced Study: https://homotopytypetheory.org/book.