{-# OPTIONS --safe --cubical #-}
module Cubical.Papers.Pi4S3 where
open import Cubical.Foundations.Equiv
open import Cubical.Foundations.Isomorphism
open import Cubical.Foundations.Univalence
open import Cubical.Foundations.Pointed
open import Cubical.Foundations.HLevels
open import Cubical.Data.Int hiding (_+_)
open import Cubical.Data.Nat
open import Cubical.Data.Nat.Order
open import Cubical.Data.Sum
open import Cubical.Data.Sigma
open import Cubical.Data.Bool as Boolean
open import Cubical.HITs.S1 as Circle
open import Cubical.Foundations.Prelude as Prelude
open import Cubical.HITs.Susp as Suspensions
open import Cubical.HITs.Sn as Spheres
hiding (S) renaming (S₊ to S)
open import Cubical.HITs.Sn.Multiplication as SMult
open import Cubical.HITs.Pushout as Pushouts
open import Cubical.HITs.Wedge as Wedges
open import Cubical.HITs.Join as Joins
open import Cubical.HITs.Susp as Suspension
open import Cubical.HITs.PropositionalTruncation as PT
open import Cubical.HITs.Truncation as Trunc
open import Cubical.Homotopy.HSpace as H-Spaces
open import Cubical.Homotopy.Group.Base as HomotopyGroups
open import Cubical.Homotopy.Group.LES as LES
open import Cubical.Homotopy.HopfInvariant.HopfMap as HopfMap
open import Cubical.Homotopy.Hopf as HopfFibration
open import Cubical.Homotopy.Connected as Connectedness
open S¹Hopf
open import Cubical.Homotopy.Freudenthal as Freudenthal
open import Cubical.Homotopy.Group.PinSn as Stable
open import Cubical.Homotopy.Group.Pi3S2 as π₃S²
open import Cubical.Homotopy.Group.Pi4S3.S3PushoutIso as James₁
open import Cubical.Homotopy.Group.Pi4S3.S3PushoutIso2 as James₂
open import Cubical.HITs.S2 as Sphere
open import Cubical.Homotopy.Whitehead as Whitehead
open import Cubical.Homotopy.BlakersMassey
module BM = BlakersMassey□
open BM
open import Cubical.Homotopy.Group.Pi4S3.BrunerieNumber as BNumber
hiding (W)
open import Cubical.ZCohomology.Base as cohom
open import Cubical.ZCohomology.GroupStructure as cohomGr
open import Cubical.ZCohomology.Properties as cohomProps
open import Cubical.ZCohomology.RingStructure.CupProduct as cup
open import Cubical.ZCohomology.MayerVietorisUnreduced as MayerVietoris
open import Cubical.Homotopy.HopfInvariant.Base as HI
open import Cubical.Homotopy.HopfInvariant.Homomorphism as HI-hom
open import Cubical.Homotopy.HopfInvariant.Brunerie as HI-β
open import Cubical.ZCohomology.Gysin as GysinSeq
open import Cubical.Homotopy.Group.Pi4S3.Summary as π₄S³
hiding (π)
open import Cubical.ZCohomology.RingStructure.RingLaws as cupLaws
open import Cubical.Homotopy.Group.Pi4S3.DirectProof as Direct
open Boolean using (Bool)
open Circle using (S¹)
open Prelude using (_≡_ ; refl)
open Prelude using (funExt; funExt⁻; cong)
open Prelude using (transport ; PathP)
open Circle using (elim)
open Suspensions using (Susp)
open Spheres using (S₊)
open Pushouts using (Pushout)
open Wedges using (_⋁_)
open Joins using (join)
open Pushouts using (cofib)
open Wedges using (fold⋁ ; ⋁↪)
∇ = fold⋁
i∨ = ⋁↪
open PT using (∥_∥₁)
open Trunc using (∥_∥_)
open H-Spaces using (HSpace)
open HomotopyGroups using (π'Gr ; πGr)
module ExactSeq = πLES
open Suspensions using (toSusp)
σ = toSusp
open HopfMap using (HopfMap)
open S¹Hopf using (IsoS³TotalHopf)
open Spheres using (sphereConnected)
isContr-πₙSᵐ-low : (n m : ℕ) → n < m → isContr (π n (S₊∙ m))
isContr-πₙSᵐ-low n m l =
transport (cong isContr (sym (ua h)))
(∣ const∙ (S₊∙ n) _ ∣₂
, ST.elim (λ _ → isOfHLevelPath 2 squash₂ _ _)
λ f → refl)
where
open import Cubical.HITs.SetTruncation as ST
isContrUnit : isContr Unit
isContrUnit = tt , λ _ → refl
con-lem : isConnected (2 + n) (S₊ m)
con-lem = isConnectedSubtr (suc (suc n)) (fst l)
(subst (λ n → isConnected n (S₊ m))
(sym (+-suc (fst l) (suc n) ∙ cong suc (snd l)))
(sphereConnected m))
h : π n (S₊∙ m) ≃ π' n (Unit , tt)
h = compEquiv (isoToEquiv (πTruncIso n))
(compEquiv (pathToEquiv (cong (π n)
(ua∙ (isoToEquiv (isContr→Iso (con-lem) isContrUnit)) refl)))
(pathToEquiv (cong ∥_∥₂ (isoToPath (IsoΩSphereMap n)))))
open Freudenthal using (isConnectedσ)
open Stable using (πₙ'Sⁿ≅ℤ ; πₙ'Sⁿ≅ℤ-idfun∙)
open π₃S² using (π₃S²≅ℤ ; π₂S³-gen-by-HopfMap)
open James₁ using (∥Pushout⋁↪fold⋁S²∥₅≃∥Pushout⋁↪fold⋁S²∥₅)
open Sphere using (S²)
open James₁ using (Pushout⋁↪fold⋁S₊2)
open James₁ using (encode ; decode)
open James₁ using (IsoΩ∥SuspS²∥₅∥Pushout⋁↪fold⋁S²∥₅)
open SMult using (IsoSphereJoin)
W = joinTo⋁
open Whitehead using ([_∣_])
open BM using (isConnected-toPullback)
open BNumber using (Brunerie)
open BNumber using (BrunerieIso)
open cohom using (coHomK)
open cohomGr using (coHomGr)
open cohomGr using (_+ₖ_)
open cup using (_⌣ₖ_ ; _⌣_)
open cohomProps using (Kn≃ΩKn+1)
open MV using ( Ker-i⊂Im-d ; Im-d⊂Ker-i
; Ker-Δ⊂Im-i ; Im-i⊂Ker-Δ
; Ker-d⊂Im-Δ ; Im-Δ⊂Ker-d)
open HI using (Hopfβ-Iso)
open HI using (HopfInvariant-π')
open HI-hom using (GroupHom-HopfInvariant-π')
open HI-β using (Brunerie'≡2)
open Gysin using (Im-⌣e⊂Ker-p ; Ker-p⊂Im-⌣e
; Im-Susp∘ϕ⊂Ker-⌣e ; Ker-⌣e⊂Im-Susp∘ϕ
; Im-ϕ∘j⊂Ker-p ; Ker-p⊂Im-ϕ∘j)
open HopfMap using (fibr)
open Hopf using (joinIso₂)
open HopfMap using (HopfInvariant-HopfMap)
open π₄S³ using (π₄S³≃ℤ/2ℤ)
open cupLaws using (assoc-helper)
open HopfMap using (isGenerator≃ℤ-e)
open Direct
open Direct using (η₁ ; η₂ ; η₃)
open Direct using (η₃' ; computerIsoη₃)