fix indexing of abutment in spectral sequences

This commit is contained in:
Floris van Doorn 2018-09-29 12:07:54 +02:00
parent 48cf8a5f31
commit 96e11300ed
2 changed files with 46 additions and 44 deletions

View file

@ -594,7 +594,7 @@ namespace left_module
definition Z2 [constructor] : AddAbGroup := ag ×aa ag definition Z2 [constructor] : AddAbGroup := ag ×aa ag
structure converges_to.{u v w} {R : Ring} (E' : ag → ag → LeftModule.{u v} R) structure convergent_exact_couple.{u v w} {R : Ring} (E' : ag → ag → LeftModule.{u v} R)
(Dinf : ag → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} := (Dinf : ag → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} :=
(X : exact_couple.{u 0 w v} R Z2) (X : exact_couple.{u 0 w v} R Z2)
(HH : is_bounded X) (HH : is_bounded X)
@ -605,15 +605,15 @@ namespace left_module
(deg_d1 : → ag) (deg_d2 : → ag) (deg_d1 : → ag) (deg_d2 : → ag)
(deg_d_eq0 : Π(r : ), deg (d (page X r)) 0 = (deg_d1 r, deg_d2 r)) (deg_d_eq0 : Π(r : ), deg (d (page X r)) 0 = (deg_d1 r, deg_d2 r))
infix ` ⟹ `:25 := converges_to infix ` ⟹ `:25 := convergent_exact_couple
definition converges_to_g [reducible] (E' : ag → ag → AbGroup) (Dinf : ag → AbGroup) : Type := definition convergent_exact_couple_g [reducible] (E' : ag → ag → AbGroup) (Dinf : ag → AbGroup) : Type :=
(λn s, LeftModule_int_of_AbGroup (E' n s)) ⟹ (λn, LeftModule_int_of_AbGroup (Dinf n)) (λn s, LeftModule_int_of_AbGroup (E' n s)) ⟹ (λn, LeftModule_int_of_AbGroup (Dinf n))
infix ` ⟹ᵍ `:25 := converges_to_g infix ` ⟹ᵍ `:25 := convergent_exact_couple_g
section section
open converges_to open convergent_exact_couple
parameters {R : Ring} {E' : ag → ag → LeftModule R} {Dinf : ag → LeftModule R} (c : E' ⟹ Dinf) parameters {R : Ring} {E' : ag → ag → LeftModule R} {Dinf : ag → LeftModule R} (c : E' ⟹ Dinf)
local abbreviation X := X c local abbreviation X := X c
local abbreviation i := i X local abbreviation i := i X
@ -631,19 +631,18 @@ namespace left_module
(deg (d (page X r)))⁻¹ᵉ (n, s) = (n - deg_d1 c r, s - deg_d2 c r) := (deg (d (page X r)))⁻¹ᵉ (n, s) = (n - deg_d1 c r, s - deg_d2 c r) :=
inv_eq_of_eq (!deg_d_eq ⬝ prod_eq !sub_add_cancel !sub_add_cancel)⁻¹ inv_eq_of_eq (!deg_d_eq ⬝ prod_eq !sub_add_cancel !sub_add_cancel)⁻¹
definition converges_to_isomorphism {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag} definition convergent_exact_couple_isomorphism {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag}
(e' : Πn s, E' n s ≃lm E'' n s) (f' : Πn, Dinf n ≃lm Dinf' n) : E'' ⟹ Dinf' := (e' : Πn s, E' n s ≃lm E'' n s) (f' : Πn, Dinf n ≃lm Dinf' n) : E'' ⟹ Dinf' :=
converges_to.mk X HH s₁ s₂ (HB c) convergent_exact_couple.mk X HH s₁ s₂ (HB c)
begin intro x, induction x with n s, exact e c (n, s) ⬝lm e' n s end begin intro x, induction x with n s, exact e c (n, s) ⬝lm e' n s end
(λn, f c n ⬝lm f' n) (λn, f c n ⬝lm f' n)
(deg_d1 c) (deg_d2 c) (λr, deg_d_eq0 c r) (deg_d1 c) (deg_d2 c) (λr, deg_d_eq0 c r)
include c include c
definition converges_to_reindex (i : ag ×ag ag ≃g ag ×ag ag) : definition convergent_exact_couple_reindex (i : ag ×ag ag ≃g ag ×ag ag) :
(λp q, E' (i (p, q)).1 (i (p, q)).2) ⟹ (λn, Dinf n) := (λp q, E' (i (p, q)).1 (i (p, q)).2) ⟹ Dinf :=
begin begin
fapply converges_to.mk (exact_couple_reindex i X) (is_bounded_reindex i HH), fapply convergent_exact_couple.mk (exact_couple_reindex i X) (is_bounded_reindex i HH),
{ exact λn, (i⁻¹ᵍ (s₁ n, s₂ n)).1 }, { exact λn, (i⁻¹ᵍ (s₁ n, s₂ n)).1 },
{ exact λn, (i⁻¹ᵍ (s₁ n, s₂ n)).2 }, { exact λn, (i⁻¹ᵍ (s₁ n, s₂ n)).2 },
{ intro n, refine ap (B' HH) _ ⬝ HB c n, { intro n, refine ap (B' HH) _ ⬝ HB c n,
@ -658,32 +657,36 @@ namespace left_module
{ intro r, esimp, refine !deg_d_reindex ⬝ ap i⁻¹ᵍ (ap (deg (d _)) (group.to_respect_zero i) ⬝ { intro r, esimp, refine !deg_d_reindex ⬝ ap i⁻¹ᵍ (ap (deg (d _)) (group.to_respect_zero i) ⬝
deg_d_eq0 c r) ⬝ !prod.eta⁻¹ } deg_d_eq0 c r) ⬝ !prod.eta⁻¹ }
end end
definition convergent_exact_couple_negate_inf : E' ⟹ (λn, Dinf (-n)) :=
convergent_exact_couple.mk X HH (s₁ ∘ neg) (s₂ ∘ neg) (λn, HB c (-n)) (e c) (λn, f c (-n))
(deg_d1 c) (deg_d2 c) (deg_d_eq0 c)
omit c omit c
/- definition converges_to_reindex {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag} /- definition convergent_exact_couple_reindex {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag}
(i : ag ×g ag ≃ ag × ag) (e' : Πp q, E' p q ≃lm E'' (i (p, q)).1 (i (p, q)).2) (i : ag ×g ag ≃ ag × ag) (e' : Πp q, E' p q ≃lm E'' (i (p, q)).1 (i (p, q)).2)
(i2 : ag ≃ ag) (f' : Πn, Dinf n ≃lm Dinf' (i2 n)) : (i2 : ag ≃ ag) (f' : Πn, Dinf n ≃lm Dinf' (i2 n)) :
(λp q, E'' p q) ⟹ λn, Dinf' n := (λp q, E'' p q) ⟹ λn, Dinf' n :=
converges_to.mk (exact_couple_reindex i X) (is_bounded_reindex i HH) s₁ s₂ convergent_exact_couple.mk (exact_couple_reindex i X) (is_bounded_reindex i HH) s₁ s₂
sorry --(λn, ap (B' HH) (to_right_inv i _ ⬝ begin end) ⬝ HB c n) sorry --(λn, ap (B' HH) (to_right_inv i _ ⬝ begin end) ⬝ HB c n)
sorry --begin intro x, induction x with p q, exact e c (p, q) ⬝lm e' p q end sorry --begin intro x, induction x with p q, exact e c (p, q) ⬝lm e' p q end
sorry-/ sorry-/
/- definition converges_to_reindex_neg {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag} /- definition convergent_exact_couple_reindex_neg {E'' : ag → ag → LeftModule R} {Dinf' : graded_module R ag}
(e' : Πp q, E' p q ≃lm E'' (-p) (-q)) (e' : Πp q, E' p q ≃lm E'' (-p) (-q))
(f' : Πn, Dinf n ≃lm Dinf' (-n)) : (f' : Πn, Dinf n ≃lm Dinf' (-n)) :
(λp q, E'' p q) ⟹ λn, Dinf' n := (λp q, E'' p q) ⟹ λn, Dinf' n :=
converges_to.mk (exact_couple_reindex (equiv_neg ×≃ equiv_neg) X) (is_bounded_reindex _ HH) convergent_exact_couple.mk (exact_couple_reindex (equiv_neg ×≃ equiv_neg) X) (is_bounded_reindex _ HH)
(λn, -s₂ (-n)) (λn, -s₂ (-n))
(λn, ap (B' HH) (begin esimp, end) ⬝ HB c n) (λn, ap (B' HH) (begin esimp, end) ⬝ HB c n)
sorry --begin intro x, induction x with p q, exact e c (p, q) ⬝lm e' p q end sorry --begin intro x, induction x with p q, exact e c (p, q) ⬝lm e' p q end
sorry-/ sorry-/
definition is_built_from_of_converges_to (n : ) : is_built_from (Dinf n) (Einfdiag n) := definition is_built_from_of_convergent_exact_couple (n : ) : is_built_from (Dinf n) (Einfdiag n) :=
is_built_from_isomorphism_left (f c n) (is_built_from_infpage HH (s₁ n, s₂ n) (HB c n)) is_built_from_isomorphism_left (f c n) (is_built_from_infpage HH (s₁ n, s₂ n) (HB c n))
/- TODO: reprove this using is_built_of -/ /- TODO: reprove this using is_built_of -/
theorem is_contr_converges_to_precise (n : ag) theorem is_contr_convergent_exact_couple_precise (n : ag)
(H : Π(n : ag) (l : ), is_contr (E' ((deg i)^[l] (s₁ n, s₂ n)).1 ((deg i)^[l] (s₁ n, s₂ n)).2)) : (H : Π(n : ag) (l : ), is_contr (E' ((deg i)^[l] (s₁ n, s₂ n)).1 ((deg i)^[l] (s₁ n, s₂ n)).2)) :
is_contr (Dinf n) := is_contr (Dinf n) :=
begin begin
@ -701,8 +704,8 @@ namespace left_module
exact equiv_of_isomorphism (Dinfdiag0 HH (s₁ n, s₂ n) (HB c n) ⬝lm f c n) exact equiv_of_isomorphism (Dinfdiag0 HH (s₁ n, s₂ n) (HB c n) ⬝lm f c n)
end end
theorem is_contr_converges_to (n : ag) (H : Π(n s : ag), is_contr (E' n s)) : is_contr (Dinf n) := theorem is_contr_convergent_exact_couple (n : ag) (H : Π(n s : ag), is_contr (E' n s)) : is_contr (Dinf n) :=
is_contr_converges_to_precise n (λn s, !H) is_contr_convergent_exact_couple_precise n (λn s, !H)
definition E_isomorphism {r₁ r₂ : } {n s : ag} (H : r₁ ≤ r₂) definition E_isomorphism {r₁ r₂ : } {n s : ag} (H : r₁ ≤ r₂)
(H1 : Π⦃r⦄, r₁ ≤ r → r < r₂ → is_contr (E X (n - deg_d1 c r, s - deg_d2 c r))) (H1 : Π⦃r⦄, r₁ ≤ r → r < r₂ → is_contr (E X (n - deg_d1 c r, s - deg_d2 c r)))
@ -733,12 +736,12 @@ namespace left_module
end end
variables {E' : ag → ag → AbGroup} {Dinf : ag → AbGroup} (c : E' ⟹ᵍ Dinf) variables {E' : ag → ag → AbGroup} {Dinf : ag → AbGroup} (c : E' ⟹ᵍ Dinf)
definition converges_to_g_isomorphism {E'' : ag → ag → AbGroup} {Dinf' : ag → AbGroup} definition convergent_exact_couple_g_isomorphism {E'' : ag → ag → AbGroup} {Dinf' : ag → AbGroup}
(e' : Πn s, E' n s ≃g E'' n s) (f' : Πn, Dinf n ≃g Dinf' n) : E'' ⟹ᵍ Dinf' := (e' : Πn s, E' n s ≃g E'' n s) (f' : Πn, Dinf n ≃g Dinf' n) : E'' ⟹ᵍ Dinf' :=
converges_to_isomorphism c (λn s, lm_iso_int.mk (e' n s)) (λn, lm_iso_int.mk (f' n)) convergent_exact_couple_isomorphism c (λn s, lm_iso_int.mk (e' n s)) (λn, lm_iso_int.mk (f' n))
structure converging_spectral_sequence.{u v w} {R : Ring} (E' : ag → ag → LeftModule.{u v} R) structure convergent_spectral_sequence.{u v w} {R : Ring} (E' : ag → ag → LeftModule.{u v} R)
(Dinf : ag → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} := (Dinf : ag → LeftModule.{u w} R) : Type.{max u (v+1) (w+1)} :=
(E : → graded_module.{u 0 v} R Z2) (E : → graded_module.{u 0 v} R Z2)
(d : Π(n : ), E n →gm E n) (d : Π(n : ), E n →gm E n)
@ -751,7 +754,6 @@ namespace left_module
/- /-
todo: todo:
- rename "converges_to" to converging_exact_couple
- double-check the definition of converging_spectral_sequence - double-check the definition of converging_spectral_sequence
- construct converging spectral sequence from a converging exact couple, - construct converging spectral sequence from a converging exact couple,
- This requires the additional hypothesis that the degree of i is (-1, 1), which is true by reflexivity for the spectral sequences we construct - This requires the additional hypothesis that the degree of i is (-1, 1), which is true by reflexivity for the spectral sequences we construct
@ -959,9 +961,9 @@ namespace spectrum
-- refine !add.assoc ⬝ ap (add s) !add.comm ⬝ !add.assoc⁻¹, -- refine !add.assoc ⬝ ap (add s) !add.comm ⬝ !add.assoc⁻¹,
-- end -- end
definition converges_to_sequence : (λn s, πₛ[n] (sfiber (f s))) ⟹ᵍ (λn, πₛ[n] (A (ub n))) := definition convergent_exact_couple_sequence : (λn s, πₛ[n] (sfiber (f s))) ⟹ᵍ (λn, πₛ[n] (A (ub n))) :=
begin begin
fapply converges_to.mk, fapply convergent_exact_couple.mk,
{ exact exact_couple_sequence }, { exact exact_couple_sequence },
{ exact is_bounded_sequence }, { exact is_bounded_sequence },
{ exact id }, { exact id },

View file

@ -174,11 +174,11 @@ section atiyah_hirzebruch
definition atiyah_hirzebruch_convergence1 : definition atiyah_hirzebruch_convergence1 :
(λn s, πₛ[n] (sfiber (spi_compose_left (λx, postnikov_smap (Y x) s)))) ⟹ᵍ (λn s, πₛ[n] (sfiber (spi_compose_left (λx, postnikov_smap (Y x) s)))) ⟹ᵍ
(λn, πₛ[n] (spi X (λx, strunc s₀ (Y x)))) := (λn, πₛ[n] (spi X (λx, strunc s₀ (Y x)))) :=
converges_to_sequence _ (λn, s₀) (λn, n - 1) atiyah_hirzebruch_lb atiyah_hirzebruch_ub convergent_exact_couple_sequence _ (λn, s₀) (λn, n - 1) atiyah_hirzebruch_lb atiyah_hirzebruch_ub
definition atiyah_hirzebruch_convergence2 : definition atiyah_hirzebruch_convergence2 :
(λn s, opH^-(n-s)[(x : X), πₛ[s] (Y x)]) ⟹ᵍ (λn, pH^-n[(x : X), Y x]) := (λn s, opH^-(n-s)[(x : X), πₛ[s] (Y x)]) ⟹ᵍ (λn, pH^n[(x : X), Y x]) :=
converges_to_g_isomorphism atiyah_hirzebruch_convergence1 convergent_exact_couple_g_isomorphism (convergent_exact_couple_negate_inf atiyah_hirzebruch_convergence1)
begin begin
intro n s, intro n s,
refine _ ⬝g (parametrized_cohomology_isomorphism_shomotopy_group_spi _ idp)⁻¹ᵍ, refine _ ⬝g (parametrized_cohomology_isomorphism_shomotopy_group_spi _ idp)⁻¹ᵍ,
@ -189,7 +189,7 @@ section atiyah_hirzebruch
end end
begin begin
intro n, intro n,
refine _ ⬝g (parametrized_cohomology_isomorphism_shomotopy_group_spi _ idp)⁻¹ᵍ, refine _ ⬝g (parametrized_cohomology_isomorphism_shomotopy_group_spi _ !neg_neg)⁻¹ᵍ,
apply shomotopy_group_isomorphism_of_pequiv, intro k, apply shomotopy_group_isomorphism_of_pequiv, intro k,
exact ppi_pequiv_right (λx, ptrunc_pequiv (maxm2 (s₀ + k)) (Y x k)), exact ppi_pequiv_right (λx, ptrunc_pequiv (maxm2 (s₀ + k)) (Y x k)),
end end
@ -211,10 +211,10 @@ section atiyah_hirzebruch
end end
definition atiyah_hirzebruch_convergence : definition atiyah_hirzebruch_convergence :
(λp q, opH^p[(x : X), πₛ[-q] (Y x)]) ⟹ᵍ (λn, pH^-n[(x : X), Y x]) := (λp q, opH^p[(x : X), πₛ[-q] (Y x)]) ⟹ᵍ (λn, pH^n[(x : X), Y x]) :=
begin begin
note z := converges_to_reindex atiyah_hirzebruch_convergence2 atiyah_hirzebruch_base_change, note z := convergent_exact_couple_reindex atiyah_hirzebruch_convergence2 atiyah_hirzebruch_base_change,
refine converges_to_g_isomorphism z _ (λn, by reflexivity), refine convergent_exact_couple_g_isomorphism z _ (by intro n; reflexivity),
intro p q, intro p q,
apply parametrized_cohomology_change_int, apply parametrized_cohomology_change_int,
esimp, esimp,
@ -227,8 +227,8 @@ section unreduced_atiyah_hirzebruch
definition unreduced_atiyah_hirzebruch_convergence {X : Type} (Y : X → spectrum) (s₀ : ) definition unreduced_atiyah_hirzebruch_convergence {X : Type} (Y : X → spectrum) (s₀ : )
(H : Πx, is_strunc s₀ (Y x)) : (H : Πx, is_strunc s₀ (Y x)) :
(λp q, uopH^p[(x : X), πₛ[-q] (Y x)]) ⟹ᵍ (λn, upH^-n[(x : X), Y x]) := (λp q, uopH^p[(x : X), πₛ[-q] (Y x)]) ⟹ᵍ (λn, upH^n[(x : X), Y x]) :=
converges_to_g_isomorphism convergent_exact_couple_g_isomorphism
(@atiyah_hirzebruch_convergence X₊ (add_point_spectrum Y) s₀ (is_strunc_add_point_spectrum H)) (@atiyah_hirzebruch_convergence X₊ (add_point_spectrum Y) s₀ (is_strunc_add_point_spectrum H))
begin begin
intro p q, refine _ ⬝g !uopH_isomorphism_opH⁻¹ᵍ, intro p q, refine _ ⬝g !uopH_isomorphism_opH⁻¹ᵍ,
@ -248,9 +248,9 @@ section serre
include H include H
definition serre_convergence : definition serre_convergence :
(λp q, uopH^p[(b : B), uH^q[F b, Y]]) ⟹ᵍ (λn, uH^-n[Σ(b : B), F b, Y]) := (λp q, uopH^p[(b : B), uH^q[F b, Y]]) ⟹ᵍ (λn, uH^n[Σ(b : B), F b, Y]) :=
proof proof
converges_to_g_isomorphism convergent_exact_couple_g_isomorphism
(unreduced_atiyah_hirzebruch_convergence (unreduced_atiyah_hirzebruch_convergence
(λx, sp_ucotensor (F x) Y) s₀ (λx, sp_ucotensor (F x) Y) s₀
(λx, is_strunc_sp_ucotensor s₀ (F x) H)) (λx, is_strunc_sp_ucotensor s₀ (F x) H))
@ -262,35 +262,35 @@ section serre
end end
begin begin
intro n, intro n,
refine unreduced_parametrized_cohomology_isomorphism_shomotopy_group_supi _ idp ⬝g _, refine unreduced_parametrized_cohomology_isomorphism_shomotopy_group_supi _ !neg_neg ⬝g _,
refine _ ⬝g (unreduced_cohomology_isomorphism_shomotopy_group_sp_ucotensor _ _ idp)⁻¹ᵍ, refine _ ⬝g (unreduced_cohomology_isomorphism_shomotopy_group_sp_ucotensor _ _ !neg_neg)⁻¹ᵍ,
apply shomotopy_group_isomorphism_of_pequiv, intro k, apply shomotopy_group_isomorphism_of_pequiv, intro k,
exact (sigma_pumap F (Y k))⁻¹ᵉ* exact (sigma_pumap F (Y k))⁻¹ᵉ*
end end
qed qed
definition serre_convergence_map : definition serre_convergence_map :
(λp q, uopH^p[(b : B), uH^q[fiber f b, Y]]) ⟹ᵍ (λn, uH^-n[X, Y]) := (λp q, uopH^p[(b : B), uH^q[fiber f b, Y]]) ⟹ᵍ (λn, uH^n[X, Y]) :=
proof proof
converges_to_g_isomorphism convergent_exact_couple_g_isomorphism
(serre_convergence (fiber f) Y s₀ H) (serre_convergence (fiber f) Y s₀ H)
begin intro p q, reflexivity end begin intro p q, reflexivity end
begin intro n, apply unreduced_cohomology_isomorphism, exact !sigma_fiber_equiv⁻¹ᵉ end begin intro n, apply unreduced_cohomology_isomorphism, exact !sigma_fiber_equiv⁻¹ᵉ end
qed qed
definition serre_convergence_of_is_conn (H2 : is_conn 1 B) : definition serre_convergence_of_is_conn (H2 : is_conn 1 B) :
(λp q, uoH^p[B, uH^q[F b₀, Y]]) ⟹ᵍ (λn, uH^-n[Σ(b : B), F b, Y]) := (λp q, uoH^p[B, uH^q[F b₀, Y]]) ⟹ᵍ (λn, uH^n[Σ(b : B), F b, Y]) :=
proof proof
converges_to_g_isomorphism convergent_exact_couple_g_isomorphism
(serre_convergence F Y s₀ H) (serre_convergence F Y s₀ H)
begin intro p q, exact @uopH_isomorphism_uoH_of_is_conn (pointed.MK B b₀) _ _ H2 end begin intro p q, exact @uopH_isomorphism_uoH_of_is_conn (pointed.MK B b₀) _ _ H2 end
begin intro n, reflexivity end begin intro n, reflexivity end
qed qed
definition serre_convergence_map_of_is_conn (H2 : is_conn 1 B) : definition serre_convergence_map_of_is_conn (H2 : is_conn 1 B) :
(λp q, uoH^p[B, uH^q[fiber f b₀, Y]]) ⟹ᵍ (λn, uH^-n[X, Y]) := (λp q, uoH^p[B, uH^q[fiber f b₀, Y]]) ⟹ᵍ (λn, uH^n[X, Y]) :=
proof proof
converges_to_g_isomorphism convergent_exact_couple_g_isomorphism
(serre_convergence_of_is_conn b₀ (fiber f) Y s₀ H H2) (serre_convergence_of_is_conn b₀ (fiber f) Y s₀ H H2)
begin intro p q, reflexivity end begin intro p q, reflexivity end
begin intro n, apply unreduced_cohomology_isomorphism, exact !sigma_fiber_equiv⁻¹ᵉ end begin intro n, apply unreduced_cohomology_isomorphism, exact !sigma_fiber_equiv⁻¹ᵉ end