module Homotopy.Space.Suspension.Freudenthal where

Freudenthal suspension theoremπŸ”—

The merid constructor of the suspension generates a path between the north and south poles, rather than a loop on either pole. If is pointed1, then we can β€œcorrect” the meridian generated by an element by composing with the inverse of the meridian at the basepoint, to properly get an element in the loop space Moreover, since is this is a pointed map which we will call If we’re considering based at some other point we will write to indicate this.

suspendβˆ™ : βˆ€ {β„“} (A : Typeβˆ™ β„“) β†’ A β†’βˆ™ Ω¹ (Σ¹ A)
suspendβˆ™ (_ , aβ‚€) .fst x = merid x βˆ™ sym (merid aβ‚€)
suspendβˆ™ (_ , aβ‚€) .snd   = βˆ™-invr (merid aβ‚€)

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

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 such a 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) =
    Wedge {Aβˆ™ = Aβˆ™} {Aβˆ™} {Ξ» a b β†’ suspend Aβˆ™ b ≑ p β†’ βˆ₯ fibre (suspend (A , a)) p βˆ₯β‚‚β‚™}
      n n conn conn (Ξ» x y β†’ hlevel 2n)
      (Ξ» 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.

  fwd : βˆ€ p a β†’ βˆ₯ fibre (suspend Aβˆ™) p βˆ₯β‚‚β‚™ β†’ βˆ₯ fibre (suspend (A , a)) p βˆ₯β‚‚β‚™
  fwd = elim! wc.elim

  fwd-is-equiv : βˆ€ p a β†’ is-equiv (fwd p a)
Actually invoking these lemmas takes a bit of bureaucracy.
  fwd-is-equiv p a .is-eqv =
    let
      eqv = relative-n-type-const
        (Ξ» a β†’ βˆ€ t β†’ is-contr (fibre (fwd p a) t))
        (Ξ» _ β†’ aβ‚€) (suc n) (point-is-n-connected aβ‚€ n conn)
        (Ξ» x β†’ hlevel (suc n))

      it : βˆ€ a (t : n-Tr (fibre (suspend Aβˆ™) p) 2n)
          β†’ is-contr (fibre (fwd p aβ‚€) t)
      it = elim! Ξ» _ x q β†’
        subst (Ξ» e β†’ is-contr (fibre e (inc (x , q)))) {x = id} {y = _}
          (funext (elim! Ξ» x β†’ sym ∘ happly (wc.Ξ²β‚‚ p x)))
          Singleton'-is-contr
    in 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
  interpolate a i x j = βˆ™-filler (merid x) (sym (merid a)) (~ i) j

  code : (y : Susp A) β†’ north ≑ y β†’ Type β„“
  code north p = βˆ₯ fibre (suspend Aβˆ™) p βˆ₯β‚‚β‚™
  code south p = βˆ₯ fibre merid p        βˆ₯β‚‚β‚™
  code (merid a i) p = Glue βˆ₯ fibre (interpolate a i) p βˆ₯β‚‚β‚™ Ξ» where
    (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.

  encode : (y : Susp A) (p : north ≑ y) β†’ code y p
  encode y = J code (inc (aβ‚€ , βˆ™-invr (merid aβ‚€)))

  encode-paths : βˆ€ p (c : βˆ₯ fibre merid p βˆ₯β‚‚β‚™) β†’ encode south p ≑ c
  encode-paths p = elim! Ξ» a β†’ J (Ξ» p r β†’ encode south p ≑ inc (a , r))
    let
      gp i = n-Tr (fibre (interpolate a i) (Ξ» j β†’ merid a (i ∧ j))) 2n

      rem₁ =
        wc.elim refl a aβ‚€ (βˆ™-invr (merid aβ‚€))
          β‰‘βŸ¨ happly (wc.β₁ refl a) (βˆ™-invr (merid aβ‚€)) βŸ©β‰‘
        inc (a , βˆ™-invr (merid a) βˆ™ sym (βˆ™-invr (merid aβ‚€)) βˆ™ βˆ™-invr (merid aβ‚€))
          β‰‘βŸ¨ ap (Ξ» e β†’ n-Tr.inc (a , e)) (βˆ™-elimr (βˆ™-invl (βˆ™-invr (merid aβ‚€)))) βŸ©β‰‘
        inc (a , βˆ™-invr (merid a))
          ∎

      remβ‚‚ =
        transport gp (fwd refl a (inc (aβ‚€ , βˆ™-invr (merid aβ‚€))))
          β‰‘βŸ¨ ap (transport gp) rem₁ βŸ©β‰‘
        transport gp (inc (a , βˆ™-invr (merid a)))
          β‰‘βŸ¨ from-pathp {A = Ξ» i β†’ gp i} (Ξ» i β†’ inc (a , Ξ» j k β†’ βˆ™-invr-filler (merid a) j k (~ i))) βŸ©β‰‘
        inc (a , refl) ∎
    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.

  merid-is-n-connected : is-n-connected-map merid 2n
  merid-is-n-connected x = n-connected.from (n + suc n) record
    { centre = encode south x
    ; paths  = encode-paths x
    }
  suspend-is-n-connected : is-n-connected-map (suspend Aβˆ™) (suc n + suc n)
  suspend-is-n-connected = transport
    (Ξ» 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)
  freudenthal-equivalence .fst .fst = _
  freudenthal-equivalence .fst .snd = is-n-connected-map→is-equiv-tr
    _ _ suspend-is-n-connected
  freudenthal-equivalence .snd = ap n-Tr.inc (βˆ™-invr (merid aβ‚€))

  1. Throughout this page we will fix a pointed type with basepoint and we will omit the distinction between and its underlying type.β†©οΈŽ


References