Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cup product lemmas for CP2 #862

Merged
merged 96 commits into from
Jul 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
ba4f529
Freudenthal
aljungstrom Mar 25, 2020
6a49b56
remove bool import
aljungstrom Mar 25, 2020
0bf84a7
newline
aljungstrom Mar 25, 2020
fe50520
delete everything @:-)
aljungstrom Mar 25, 2020
6dddf6c
whitespace...
aljungstrom Mar 26, 2020
182c5d6
Update 8-6-1.agda
aljungstrom Mar 26, 2020
1816ffc
testing
aljungstrom Mar 31, 2020
c19b003
Merge https://github.com/aljungstrom/cubical
aljungstrom Mar 31, 2020
de9e441
Merge branch 'master' of https://github.com/agda/cubical
aljungstrom Mar 31, 2020
81c3668
Application
aljungstrom Apr 7, 2020
6fd833f
updated Trunc
aljungstrom Apr 8, 2020
e571a82
updated Trunc
aljungstrom Apr 8, 2020
2726449
move some things into ZCohomology.Properties + comments
aljungstrom Apr 14, 2020
31fe285
move some things into ZCohomology.Properties + comments
aljungstrom Apr 14, 2020
5b99dfa
fix loopspace of K
aljungstrom Apr 20, 2020
a771acb
K-algebra
aljungstrom Apr 20, 2020
4b33a57
K algebra laws done
aljungstrom Apr 21, 2020
971519c
Merge branch 'master' of https://github.com/agda/cubical
aljungstrom Apr 21, 2020
972feaf
smash sphere
aljungstrom Apr 21, 2020
57d9c23
push
aljungstrom Apr 25, 2020
ce9ce2c
smash-assoc
aljungstrom Apr 26, 2020
affd752
Merge https://github.com/agda/cubical into pushout
aljungstrom Apr 26, 2020
dbbf691
K-grousp
aljungstrom May 3, 2020
2babc74
Merge pull request #5 from aljungstrom/cohom-alg
aljungstrom May 3, 2020
fc4b2fe
K-alg
aljungstrom May 3, 2020
b75a597
whitespace etc
aljungstrom May 3, 2020
1efcf09
Merge https://github.com/agda/cubical into cohom-Alg2
aljungstrom May 3, 2020
0401472
merge main
aljungstrom May 3, 2020
d4305ca
minor fixes
aljungstrom May 3, 2020
6ce924f
delete abgroup
aljungstrom May 3, 2020
eaaa440
rename
aljungstrom May 3, 2020
816f6d8
renaming
aljungstrom May 3, 2020
6d89eab
whitespace...
aljungstrom May 3, 2020
ed81a07
Merge branch 'master' of https://github.com/aljungstrom/cubical into …
aljungstrom May 4, 2020
457cd7b
MVunreduced
aljungstrom May 6, 2020
5dcd3c8
MV-almostDone
aljungstrom May 12, 2020
cdeb64d
MV done
aljungstrom May 13, 2020
9633b52
finalbackup
aljungstrom May 19, 2020
3201417
backup before merge
aljungstrom May 26, 2020
ea33bf4
merged
aljungstrom May 26, 2020
3e3ac2a
injectivity
aljungstrom May 31, 2020
5e1a576
cohom1-S1
aljungstrom Jun 1, 2020
39fca67
S1-done
aljungstrom Jun 2, 2020
9cdb1da
basechange-morph
aljungstrom Jun 4, 2020
0d8db96
cohom1Torus-maps+rinv
aljungstrom Jun 7, 2020
c8a15cd
moreTorusStuff
aljungstrom Jun 10, 2020
8da0772
newBranchBackup
aljungstrom Jun 10, 2020
bc62fb7
moreCopatterns
aljungstrom Jun 10, 2020
7a71bd9
coHom-restructuring
aljungstrom Jun 12, 2020
b7bc88c
backup_before_merge
aljungstrom Jun 14, 2020
8fd6b4a
almost done
aljungstrom Jun 16, 2020
e6d7211
mergefixes
aljungstrom Jun 17, 2020
da3234b
private
aljungstrom Jun 17, 2020
5490f4c
emptylines
aljungstrom Jun 17, 2020
0780eee
whitespace:-)
aljungstrom Jun 17, 2020
5fbcf36
backup
aljungstrom Jul 6, 2020
7b467e2
newGroupDef
aljungstrom Jul 9, 2020
a7690b0
Merge https://github.com/agda/cubical into allCohomGroups
aljungstrom Jul 9, 2020
7d815fb
last fixes
aljungstrom Jul 10, 2020
415138d
Merge https://github.com/agda/cubical into allCohomGroups
aljungstrom Jul 10, 2020
af86c97
merge
aljungstrom Jul 10, 2020
7d43c5f
whiteSpaceFiller3
aljungstrom Jul 10, 2020
1eeab49
whiteSpaceFiller4
aljungstrom Jul 10, 2020
3ab3341
fixes
aljungstrom Jul 16, 2020
2d13faf
anders+whitespace
aljungstrom Jul 16, 2020
96f94d2
Merge https://github.com/agda/cubical into allCohomGroups
aljungstrom Jul 16, 2020
1270ab3
Merge https://github.com/agda/cubical into allCohomGroups
aljungstrom Jul 24, 2020
fbf33d1
fixes
aljungstrom Jul 24, 2020
f96e421
h1-sn
aljungstrom Jul 27, 2020
d993058
cleanup
aljungstrom Aug 4, 2020
da2d529
cleanup2
aljungstrom Aug 4, 2020
9a89513
fix merge conflicts
Sep 1, 2020
8612eb5
cleanup
Sep 1, 2020
9a5e8b5
Merge https://github.com/agda/cubical
Sep 4, 2020
a3b35c5
Merge branch 'master' of https://github.com/agda/cubical into HEAD
aljungstrom Sep 29, 2020
702cae2
Merge
aljungstrom Sep 29, 2020
6aaa3a7
Merge https://github.com/agda/cubical into merge
aljungstrom Oct 6, 2020
7d939f3
Merge pull request #7 from aljungstrom/merge
aljungstrom Oct 6, 2020
8f5cce7
Merge https://github.com/agda/cubical
Oct 23, 2020
69d358f
Merge https://github.com/agda/cubical
Oct 26, 2020
b6cc1b3
Merge branch 'master' of https://github.com/aljungstrom/cubical into …
aljungstrom Jun 8, 2021
87fb31b
Merge branch 'master' of https://github.com/agda/cubical into clean
aljungstrom Jun 8, 2021
1731ba1
Merge branch 'master' of https://github.com/agda/cubical into clean
aljungstrom Jun 16, 2021
3139ba6
Merge branch 'master' of https://github.com/agda/cubical into clean
aljungstrom Jul 1, 2021
e8746d8
Merge https://github.com/agda/cubical into clean
aljungstrom Jul 5, 2021
39f3430
Benchmarks updated
aljungstrom Jul 6, 2021
5cefea5
fix
aljungstrom Aug 12, 2021
4b75fc3
Merge https://github.com/agda/cubical into clean
aljungstrom Oct 28, 2021
49e22af
Merge https://github.com/agda/cubical into clean
aljungstrom Jan 24, 2022
59adbd8
merge
aljungstrom May 30, 2022
c543a60
almos tsmash
aljungstrom Jun 7, 2022
9bab9ef
amost
aljungstrom Jun 7, 2022
4dbc149
Merge https://github.com/agda/cubical into CP4gen
aljungstrom Jul 8, 2022
87ce274
done
aljungstrom Jul 9, 2022
ef74d0b
minor
aljungstrom Jul 10, 2022
c7e34f3
wups
aljungstrom Jul 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Cubical/ZCohomology/GroupStructure.agda
Original file line number Diff line number Diff line change
Expand Up @@ -672,6 +672,11 @@ coHomRedGrDir n A = AbGroup→Group (coHomRedGroupDir n A)
coHomFun : ∀ {ℓ ℓ'} {A : Type ℓ} {B : Type ℓ'} (n : ℕ) (f : A → B) → coHom n B → coHom n A
coHomFun n f = ST.rec § λ β → ∣ β ∘ f ∣₂

coHomFunId : ∀ {ℓ} {A : Type ℓ} (n : ℕ)
→ coHomFun {A = A} n (idfun A) ≡ idfun _
coHomFunId n =
funExt (ST.elim (λ _ → isSetPathImplicit) λ _ → refl)

coHomMorph : ∀ {ℓ ℓ'} {A : Type ℓ} {B : Type ℓ'} (n : ℕ) (f : A → B) → GroupHom (coHomGr n B) (coHomGr n A)
fst (coHomMorph n f) = coHomFun n f
snd (coHomMorph n f) = makeIsGroupHom (helper n)
Expand Down
114 changes: 114 additions & 0 deletions Cubical/ZCohomology/Groups/CP2.agda
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ open import Cubical.Data.Int
open import Cubical.Data.Sigma

open import Cubical.Algebra.Group
open import Cubical.Algebra.Group.GroupPath
open import Cubical.Algebra.Group.Instances.Int
open import Cubical.Algebra.Group.Morphisms
open import Cubical.Algebra.Group.MorphismProperties
Expand All @@ -35,6 +36,8 @@ open import Cubical.HITs.PropositionalTruncation as PT
open import Cubical.HITs.Truncation

open import Cubical.Homotopy.Hopf
open import Cubical.Homotopy.HopfInvariant.HopfMap renaming (CP² to CP2 ; H²CP²≅ℤ to H²CP2≅ℤ)
open import Cubical.Homotopy.HSpace

open import Cubical.ZCohomology.Base
open import Cubical.ZCohomology.Groups.Connected
Expand All @@ -44,6 +47,7 @@ open import Cubical.ZCohomology.MayerVietorisUnreduced
open import Cubical.ZCohomology.Groups.Unit
open import Cubical.ZCohomology.Groups.Sn
open import Cubical.ZCohomology.RingStructure.CupProduct
open import Cubical.ZCohomology.RingStructure.RingLaws

open S¹Hopf
open IsGroupHom
Expand Down Expand Up @@ -113,6 +117,7 @@ H²CP²≅ℤ = compGroupIso (BijectionIso→GroupIso bij)
BijectionIso.surj bij y =
M.Ker-Δ⊂Im-i 2 y (isContr→isProp isContrH²TotalHopf _ _)


H⁴CP²≅ℤ : GroupIso (coHomGr 4 CP²) ℤGroup
H⁴CP²≅ℤ = compGroupIso (invGroupIso (BijectionIso→GroupIso bij))
(compGroupIso help (Hⁿ-Sⁿ≅ℤ 2))
Expand Down Expand Up @@ -249,3 +254,112 @@ brunerie2 = ℤ→HⁿCP²→ℤ 1
|brunerie2|≡1 : abs (ℤ→HⁿCP²→ℤ 1) ≡ 1
|brunerie2|≡1 = refl
-}


-- Construction of an iso H⁴(CP²) ≅ ℤ sending s.t. the map
-- ℤ × ℤ → H²(CP²) × H²(CP²) → H⁴(CP²) → ℤ
-- constructed via the cup product sends (1 , 1) to 1
-- If brunerie2 computes (to 1), this could be avoided

CP²≡CP2 : Iso CP² CP2
CP²≡CP2 = compIso (equivToIso (symPushout fst (λ _ → tt))) (invIso CP²-iso)
where
module m = Hopf S1-AssocHSpace (sphereElim2 0 (λ _ _ → squash₁) ∣ (λ _ → base) ∣₁)
F : (x : S₊ 2) → (m.Hopf x) → (HopfSuspS¹ (fun idIso x))
F north y = y
F south y = y
F (merid x i) = toPathP lem i
where
lem : transport (λ i → m.Hopf (merid x i) → Glue S¹ (Border x i))
(λ x → x)
≡ λ x → x
lem = funExt λ z → commS¹ x (invEq (m.μ-eq x) z) ∙ secEq (m.μ-eq x) z

F-eq : (x : S₊ 2) → isEquiv (F x)
F-eq = suspToPropElim base (λ _ → isPropIsEquiv _) (idIsEquiv _)

H = m.TotalSpaceHopfPush

H≃TotalHopf : H ≃ TotalHopf
H≃TotalHopf =
compEquiv
(m.TotalSpaceHopfPush→TotalSpace
, m.isEquivTotalSpaceHopfPush→TotalSpace)
(Σ-cong-equiv (idEquiv _)
λ x → F x , F-eq x)

CP²-iso : Iso CP2 (Pushout {A = TotalHopf} (λ _ → tt) fst)
CP²-iso = pushoutIso _ _ _ _ H≃TotalHopf (idEquiv _) (idEquiv _) refl refl

Σℤ≅H⁴CP² : Σ[ ϕ₄ ∈ GroupEquiv ℤGroup (coHomGr 4 CP²) ]
Iso.inv (fst H²CP²≅ℤ) 1 ⌣ Iso.inv (fst H²CP²≅ℤ) 1
≡ fst (fst ϕ₄) 1
Σℤ≅H⁴CP² = fst c , (cong (inv (fst H²CP²≅ℤ) (pos 1) ⌣_) lem ∙ snd c)
where
cupIsEquiv : {A B : Type₀}
→ (f : A ≃ B)
→ (e : coHom 2 A)
→ isEquiv {A = coHom 2 A} {B = coHom 4 A} (_⌣ e)
→ isEquiv {A = coHom 2 B} {B = coHom 4 B} (_⌣ coHomFun 2 (invEq f) e)
cupIsEquiv {B = B} =
EquivJ (λ A f →
(e : coHom 2 A)
→ isEquiv {A = coHom 2 A} {B = coHom 4 A} (_⌣ e)
→ isEquiv {B = coHom 4 B} (_⌣ coHomFun 2 (invEq f) e))
λ e p → subst isEquiv (help e) p
where
help : (e : coHom 2 B) → _⌣ e ≡ _⌣ coHomFun 2 (invEq (idEquiv B)) e
help e i y = y ⌣ coHomFunId 2 (~ i) e

gen' : coHom 2 CP²
gen' = ∣ (λ { (inl x) → ∣ x ∣ ; (inr x) → 0ₖ 2 ; (push a i) → pp a i}) ∣₂
where
pp : (a : TotalHopf) → Path (coHomK 2) ∣ fst a ∣ₕ (0ₖ 2)
pp = elim-TotalHopf _ (λ _ → (isOfHLevelTrunc 4 _ _)) refl


genId : Iso.fun (fst (coHomIso 2 CP²≡CP2)) genCP² ≡ gen'
genId = sym (Iso.leftInv (fst H²CP²≅ℤ) _)
∙∙ cong (Iso.inv (fst H²CP²≅ℤ)) lem
∙∙ Iso.leftInv (fst H²CP²≅ℤ) _
where
lem : Iso.fun (fst H²CP²≅ℤ) (Iso.fun (fst (coHomIso 2 CP²≡CP2)) genCP²)
≡ Iso.fun (fst H²CP²≅ℤ) gen'
lem = refl

isEquiv⌣gen' : GroupEquiv (coHomGr 2 CP²) (coHomGr 4 CP²)
fst (fst isEquiv⌣gen') = _⌣ gen'
snd (fst isEquiv⌣gen') =
subst isEquiv (λ i x → x ⌣ genId i)
((cupIsEquiv (invEquiv (isoToEquiv CP²≡CP2))) genCP²
(subst isEquiv (funExt (λ x → cong (x ⌣_) Gysin-e≡genCP²))
(⌣Equiv .fst .snd)))
snd isEquiv⌣gen' = makeIsGroupHom λ f g → rightDistr-⌣ _ _ f g _

abstract
main : {A B : Group₀}
(A≃B : GroupEquiv A B)
(Z≃A : GroupEquiv ℤGroup A)
→ Σ[ Z≃B ∈ GroupEquiv ℤGroup B ]
fst (fst A≃B) (fst (fst Z≃A) (pos 1))
≡ fst (fst Z≃B) (pos 1)
main {A = A} {B = B} =
GroupEquivJ (λ B A≃B →
(Z≃A : GroupEquiv ℤGroup A)
→ Σ[ Z≃B ∈ GroupEquiv ℤGroup B ]
fst (fst A≃B) (fst (fst Z≃A) (pos 1))
≡ fst (fst Z≃B) (pos 1))
(GroupEquivJ (λ A Z≃A → Σ[ ϕ ∈ GroupEquiv ℤGroup A ] fst (fst Z≃A) 1 ≡ fst (fst ϕ) 1)
(idGroupEquiv , refl))

lem : inv (fst H²CP²≅ℤ) (pos 1) ≡ gen'
lem = Iso.leftInv (fst H²CP²≅ℤ) gen'

c = main isEquiv⌣gen' (GroupIso→GroupEquiv (invGroupIso H²CP²≅ℤ))

H⁴CP²≅ℤ-pos : GroupIso (coHomGr 4 CP²) ℤGroup
H⁴CP²≅ℤ-pos = invGroupIso (GroupEquiv→GroupIso (Σℤ≅H⁴CP² .fst))

H⁴CP²≅ℤ-pos-resp⌣ : Iso.inv (fst H²CP²≅ℤ) (pos 1) ⌣ Iso.inv (fst H²CP²≅ℤ) (pos 1)
≡ Iso.inv (fst H⁴CP²≅ℤ-pos) (pos 1)
H⁴CP²≅ℤ-pos-resp⌣ = Σℤ≅H⁴CP² .snd