diff --git a/homotopy/cohomology.hlean b/homotopy/cohomology.hlean index 799aa8f..04ceb27 100644 --- a/homotopy/cohomology.hlean +++ b/homotopy/cohomology.hlean @@ -90,7 +90,12 @@ end definition cohomology_isomorphism_shomotopy_group_sp_cotensor (X : Type*) (Y : spectrum) {n m : ℤ} (p : -m = n) : H^n[X, Y] ≃g πₛ[m] (sp_cotensor X Y) := -sorry /- TODO FOR SSS -/ +begin + refine !trunc_ppi_isomorphic_pmap⁻¹ᵍ ⬝g _, + refine parametrized_cohomology_isomorphism_shomotopy_group_spi (λx, Y) p ⬝g _, + apply shomotopy_group_isomorphism_of_pequiv, intro k, + apply pppi_pequiv_ppmap +end definition unreduced_cohomology_isomorphism_shomotopy_group_sp_ucotensor (X : Type) (Y : spectrum) {n m : ℤ} (p : -m = n) : uH^n[X, Y] ≃g πₛ[m] (sp_ucotensor X Y) := @@ -99,8 +104,6 @@ begin apply shomotopy_group_isomorphism_of_pequiv, intro k, apply ppmap_add_point end - - /- functoriality -/ definition cohomology_functor [constructor] {X X' : Type*} (f : X' →* X) (Y : spectrum) @@ -138,23 +141,24 @@ definition cohomology_isomorphism_refl (X : Type*) (Y : spectrum) (n : ℤ) (x : definition cohomology_isomorphism_right (X : Type*) {Y Y' : spectrum} (e : Πn, Y n ≃* Y' n) (n : ℤ) : H^n[X, Y] ≃g H^n[X, Y'] := -sorry /- TODO FOR SSS -/ +cohomology_isomorphism_shomotopy_group_sp_cotensor X Y !neg_neg ⬝g +shomotopy_group_isomorphism_of_pequiv (-n) (λk, pequiv_ppcompose_left (e k)) ⬝g +(cohomology_isomorphism_shomotopy_group_sp_cotensor X Y' !neg_neg)⁻¹ᵍ definition parametrized_cohomology_isomorphism_right {X : Type*} {Y Y' : X → spectrum} (e : Πx n, Y x n ≃* Y' x n) (n : ℤ) : pH^n[(x : X), Y x] ≃g pH^n[(x : X), Y' x] := parametrized_cohomology_isomorphism_shomotopy_group_spi Y !neg_neg ⬝g -shomotopy_group_isomorphism_of_pequiv (-n) (λk, ppi_pequiv_right sorry) ⬝g +shomotopy_group_isomorphism_of_pequiv (-n) (λk, ppi_pequiv_right (λx, e x k)) ⬝g (parametrized_cohomology_isomorphism_shomotopy_group_spi Y' !neg_neg)⁻¹ᵍ ---sorry /- TODO FOR SSS -/ definition unreduced_parametrized_cohomology_isomorphism_right {X : Type} {Y Y' : X → spectrum} (e : Πx n, Y x n ≃* Y' x n) (n : ℤ) : upH^n[(x : X), Y x] ≃g upH^n[(x : X), Y' x] := -sorry /- TODO FOR SSS -/ +parametrized_cohomology_isomorphism_right (λx' k, add_point_over_pequiv (λx, e x k) x') n definition unreduced_ordinary_parametrized_cohomology_isomorphism_right {X : Type} {G G' : X → AbGroup} (e : Πx, G x ≃g G' x) (n : ℤ) : uopH^n[(x : X), G x] ≃g uopH^n[(x : X), G' x] := -sorry /- TODO FOR SSS -/ +unreduced_parametrized_cohomology_isomorphism_right (λx, EM_spectrum_pequiv (e x)) n definition ordinary_cohomology_isomorphism_right (X : Type*) {G G' : AbGroup} (e : G ≃g G') (n : ℤ) : oH^n[X, G] ≃g oH^n[X, G'] := diff --git a/homotopy/pointed_cubes.hlean b/homotopy/pointed_cubes.hlean index f38c547..5266db8 100644 --- a/homotopy/pointed_cubes.hlean +++ b/homotopy/pointed_cubes.hlean @@ -5,8 +5,8 @@ Authors: Egbert Rijke -/ -/- -The goal of this file is to extend the library of pointed types and pointed maps to support the library of prespectra +/- +The goal of this file is to extend the library of pointed types and pointed maps to support the library of prespectra -/ @@ -37,14 +37,14 @@ end definition psquare_of_pid_top_bot {A B : Type*} {fleft : A →* B} {fright : A →* B} (phtpy : fright ~* fleft) : psquare (pid A) (pid B) fleft fright := psquare_of_phomotopy ((pcompose_pid fright) ⬝* phtpy ⬝* (pid_pcompose fleft)⁻¹*) -print psquare_of_pid_top_bot +--print psquare_of_pid_top_bot --λ phtpy, psquare_of_phomotopy ((pid_pcompose fleft) ⬝* phtpy ⬝* ((pcompose_pid fright)⁻¹*)) definition psquare_of_pid_left_right {A B : Type*} {ftop : A →* B} {fbot : A →* B} (phtpy : ftop ~* fbot) : psquare ftop fbot (pid A) (pid B) := psquare_of_phomotopy ((pid_pcompose ftop) ⬝* phtpy ⬝* ((pcompose_pid fbot)⁻¹*)) -print psquare_of_pid_left_right +--print psquare_of_pid_left_right definition psquare_hcompose {A B C D E F : Type*} {ftop : A →* B} {fbot : D →* E} {fleft : A →* D} {fright : B →* E} {gtop : B →* C} {gbot : E →* F} {gright : C →* F} (psq_left : psquare ftop fbot fleft fright) (psq_right : psquare gtop gbot fright gright) : psquare (gtop ∘* ftop) (gbot ∘* fbot) fleft gright := begin @@ -100,7 +100,7 @@ phsquare (pwhisker_left fright phtpy_top) (pwhisker_right fleft phtpy_bot) psq_b definition ptube_h {A B C D : Type*} {ftop : A →* B} {fbot : C →* D} {fleft fleft' : A →* C} (phtpy_left : fleft ~* fleft') {fright fright' : B →* D} (phtpy_right : fright ~* fright') (psq_back : psquare ftop fbot fleft fright) (psq_front : psquare ftop fbot fleft' fright') : Type := phsquare (pwhisker_right ftop phtpy_right) (pwhisker_left fbot phtpy_left) psq_back psq_front -print pinv_right_phomotopy_of_phomotopy +--print pinv_right_phomotopy_of_phomotopy definition psquare_inv_top_bot {A B C D : Type*} {ftop : A ≃* B} {fbot : C ≃* D} {fleft : A →* C} {fright : B →* D} (psq : psquare ftop fbot fleft fright) : psquare ftop⁻¹ᵉ* fbot⁻¹ᵉ* fright fleft := begin @@ -114,25 +114,25 @@ end definition p2homotopy_ty_respect_pt {A B : Type*} {f g : A →* B} {H K : f ~* g} (htpy : H ~ K) : Type := begin induction H with H p, exact p - end = whisker_right (respect_pt g) (htpy pt) ⬝ + end = whisker_right (respect_pt g) (htpy pt) ⬝ begin induction K with K q, exact q end -print p2homotopy_ty_respect_pt +--print p2homotopy_ty_respect_pt structure p2homotopy {A B : Type*} {f g : A →* B} (H K : f ~* g) : Type := ( to_2htpy : H ~ K) ( respect_pt : p2homotopy_ty_respect_pt to_2htpy) -definition ptube_v_phtpy_bot {A B C D : Type*} - {ftop ftop' : A →* B} {phtpy_top : ftop ~* ftop'} +definition ptube_v_phtpy_bot {A B C D : Type*} + {ftop ftop' : A →* B} {phtpy_top : ftop ~* ftop'} {fbot fbot' : C →* D} {phtpy_bot phtpy_bot' : fbot ~* fbot'} (ppi_htpy_bot : phtpy_bot ~~* phtpy_bot') - {fleft : A →* C} {fright : B →* D} - {psq_back : psquare ftop fbot fleft fright} - {psq_front : psquare ftop' fbot' fleft fright} - (ptb : ptube_v phtpy_top phtpy_bot psq_back psq_front) - : ptube_v phtpy_top phtpy_bot' psq_back psq_front + {fleft : A →* C} {fright : B →* D} + {psq_back : psquare ftop fbot fleft fright} + {psq_front : psquare ftop' fbot' fleft fright} + (ptb : ptube_v phtpy_top phtpy_bot psq_back psq_front) + : ptube_v phtpy_top phtpy_bot' psq_back psq_front := begin induction ppi_htpy_bot using ppi_homotopy_rec_on_idp, @@ -146,12 +146,12 @@ begin exact id, end -definition ptube_v_left_inv {A B C D : Type*} {ftop : A ≃* B} {fbot : C ≃* D} {fleft : A →* C} {fright : B →* D} - (psq : psquare ftop fbot fleft fright) : - ptube_v - (pleft_inv ftop) - (pleft_inv fbot) - (psquare_hcompose psq (psquare_inv_top_bot psq)) +definition ptube_v_left_inv {A B C D : Type*} {ftop : A ≃* B} {fbot : C ≃* D} {fleft : A →* C} {fright : B →* D} + (psq : psquare ftop fbot fleft fright) : + ptube_v + (pleft_inv ftop) + (pleft_inv fbot) + (psquare_hcompose psq (psquare_inv_top_bot psq)) (psquare_of_pid_top_bot phomotopy.rfl) := begin refine ptube_v_phtpy_bot _ _, diff --git a/homotopy/strunc.hlean b/homotopy/strunc.hlean index 6b95c84..d611093 100644 --- a/homotopy/strunc.hlean +++ b/homotopy/strunc.hlean @@ -210,8 +210,8 @@ end open option definition is_strunc_add_point_spectrum {X : Type} {Y : X → spectrum} {s₀ : ℤ} (H : Πx, is_strunc s₀ (Y x)) : Π(x : X₊), is_strunc s₀ (add_point_spectrum Y x) -| (some x) := H x -| none := is_strunc_sunit s₀ +| (some x) := proof H x qed +| none := begin intro k, apply is_trunc_lift, apply is_trunc_unit end definition is_strunc_EM_spectrum (G : AbGroup) : is_strunc 0 (EM_spectrum G) := diff --git a/pointed.hlean b/pointed.hlean index a1ba9f8..916512d 100644 --- a/pointed.hlean +++ b/pointed.hlean @@ -231,6 +231,11 @@ namespace pointed | (some a) := B a | none := plift punit + definition add_point_over_pequiv {A : Type} {B B' : A → Type*} (e : Πa, B a ≃* B' a) : + Π(a : A₊), add_point_over B a ≃* add_point_over B' a + | (some a) := e a + | none := pequiv.rfl + definition phomotopy_group_plift_punit.{u} (n : ℕ) [H : is_at_least_two n] : πag[n] (plift.{0 u} punit) ≃g trivial_ab_group_lift.{u} := begin