Skip to content
Closed
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
9497d79
feat(Algebra/Homology/SpectralSequence): complex shapes for pages of …
joelriou Feb 15, 2026
aa67927
definition of spectral objects
joelriou Feb 15, 2026
3d2a747
year
joelriou Feb 15, 2026
7a1e13e
year
joelriou Feb 15, 2026
0ca9c30
SpectralSequenceMkData
joelriou Feb 15, 2026
a1f4a55
feat(Order/Fin): lemmas about Fin.clamp
joelriou Feb 15, 2026
e590fc2
better syntax
joelriou Feb 15, 2026
0b9f94c
fix
joelriou Feb 15, 2026
62810e4
Merge remote-tracking branch 'origin/spectral-sequences-1-complex-sha…
joelriou Feb 15, 2026
a085aed
Merge remote-tracking branch 'origin/clamp-lemmas' into spectral-sequ…
joelriou Feb 15, 2026
400682f
fix
joelriou Feb 15, 2026
604a592
first quadrant
joelriou Feb 15, 2026
9a8f9a2
Apply suggestion from @joelriou
joelriou Feb 26, 2026
67af4cd
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Feb 28, 2026
539d24f
Merge remote-tracking branch 'origin/spectral-sequences-2-mkdata' int…
joelriou Feb 28, 2026
6d3406d
Merge remote-tracking branch 'origin/spectral-sequences-2-has-spectra…
joelriou Feb 28, 2026
c4520e5
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 3, 2026
ff09b25
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 3, 2026
adf5b3e
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 3, 2026
4bf6ad0
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 3, 2026
6dd2312
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 3, 2026
b8aa6a2
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 3, 2026
b01548b
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 3, 2026
743e71c
fix
joelriou Mar 3, 2026
ad66621
fix
joelriou Mar 3, 2026
42b80d9
Merge remote-tracking branch 'origin/spectral-sequences-2-mkdata' int…
joelriou Mar 3, 2026
34bfe35
Merge remote-tracking branch 'origin/spectral-sequences-2-has-spectra…
joelriou Mar 3, 2026
eb908cf
fix
joelriou Mar 3, 2026
e681190
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 3, 2026
dcd0fde
Merge remote-tracking branch 'origin/spectral-sequences-2-has-spectra…
joelriou Mar 3, 2026
60ff478
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 3, 2026
8e3756c
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 5, 2026
c3b9d66
Merge remote-tracking branch 'origin/spectral-sequences-2-has-spectra…
joelriou Mar 5, 2026
f34314b
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 5, 2026
14c5506
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 6, 2026
19c2b2f
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
bd5ba12
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
143b3d8
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
40b9b54
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
6b1006f
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
9aa8862
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
590aebe
Apply suggestion from @joelriou
joelriou Mar 6, 2026
f54f630
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
a0f910d
Apply suggestion from @joelriou
joelriou Mar 6, 2026
14c02cf
whitespace
joelriou Mar 6, 2026
7748501
Merge remote-tracking branch 'origin/spectral-sequences-2-has-spectra…
joelriou Mar 6, 2026
380413b
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 6, 2026
a639940
Merge remote-tracking branch 'origin/master' into spectral-sequences-…
joelriou Mar 6, 2026
d9ffee9
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
5494c64
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
96b251d
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
45a0183
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
9abb977
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
93a2d46
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
8b13a0b
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
854797d
Update Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
joelriou Mar 6, 2026
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
85 changes: 85 additions & 0 deletions Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,91 @@ instance {l : ℕ} (E : SpectralObject C (Fin (l + 1))) :
have := isIso_homOfLE this
apply E.isZero_H_map_mk₁_of_isIso

section

variable (Y : SpectralObject C EInt)

/-- The conditions on a spectral object indexed by `EInt` which allow
to obtain a (convergent) first quadrant `E₂` cohomological spectral sequence. -/
class IsFirstQuadrant : Prop where
isZero₁ (i j : EInt) (hij : i ≤ j) (hj : j ≤ (0 : ℤ)) (n : ℤ) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij)))
isZero₂ (i j : EInt) (hij : i ≤ j) (n : ℤ) (hi : n < i) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij)))

variable [Y.IsFirstQuadrant]

lemma isZero₁_of_isFirstQuadrant (i j : EInt) (hij : i ≤ j) (hj : j ≤ (0 : ℤ)) (n : ℤ) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij))) :=
IsFirstQuadrant.isZero₁ i j hij hj n

lemma isZero₂_of_isFirstQuadrant (i j : EInt) (hij : i ≤ j) (n : ℤ) (hi : n < i) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij))) :=
IsFirstQuadrant.isZero₂ i j hij n hi

instance : Y.HasSpectralSequence coreE₂CohomologicalNat where
isZero_H_obj_mk₁_i₀_le := by
rintro r _ ⟨p, q⟩ hpq n rfl rfl hr
apply isZero₁_of_isFirstQuadrant
simp only [coreE₂CohomologicalNat_i₀, WithBotTop.coe_le_coe]
by_contra!
obtain ⟨p', hp'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ p + r by lia)
obtain ⟨q', hq'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ q + 1 - r by lia)
exact hpq ⟨p', q'⟩ (by constructor <;> lia)
isZero_H_obj_mk₁_i₃_le := by
rintro r _ ⟨p, q⟩ hpq n rfl rfl hr
apply isZero₂_of_isFirstQuadrant
simp only [coreE₂CohomologicalNat_deg, coreE₂CohomologicalNat_i₃, WithBotTop.coe_lt_coe]
by_contra!
obtain ⟨p', hp'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ p - r by lia)
obtain ⟨q', hq'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ q - 1 + r by lia)
exact hpq ⟨p', q'⟩ (by constructor <;> lia)

end

section

variable (Y : SpectralObject C EInt)

/-- The conditions on a spectral object indexed by `EInt` which allow
to obtain a (convergent) third quadrant `E₂` cohomological spectral sequence,
or a (convergent) first quadrant `E₂` *homological* spectral sequence -/
class IsThirdQuadrant where
isZero₁ (i j : EInt) (hij : i ≤ j) (hi : (0 : ℤ) < i) (n : ℤ) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij)))
isZero₂ (i j : EInt) (hij : i ≤ j) (n : ℤ) (hj : j ≤ n) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij)))

variable [Y.IsThirdQuadrant]

lemma isZero₁_of_isThirdQuadrant (i j : EInt) (hij : i ≤ j) (hi : (0 : ℤ) < i) (n : ℤ) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij))) :=
IsThirdQuadrant.isZero₁ i j hij hi n

lemma isZero₂_of_isThirdQuadrant (i j : EInt) (hij : i ≤ j) (n : ℤ) (hj : j ≤ n) :
IsZero ((Y.H n).obj (mk₁ (homOfLE hij))) :=
IsThirdQuadrant.isZero₂ i j hij n hj

instance : Y.HasSpectralSequence coreE₂HomologicalNat where
isZero_H_obj_mk₁_i₀_le := by
rintro r _ ⟨p, q⟩ hpq n rfl rfl hr
apply isZero₂_of_isThirdQuadrant
simp only [coreE₂HomologicalNat_i₀, coreE₂HomologicalNat_deg, WithBotTop.coe_le_coe]
by_contra!
obtain ⟨p', hp'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ p - r by lia)
obtain ⟨q', hq'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ q + r - 1 by lia)
exact hpq ⟨p', q'⟩ (by constructor <;> lia)
isZero_H_obj_mk₁_i₃_le := by
rintro r _ ⟨p, q⟩ hpq n rfl rfl hr
apply isZero₁_of_isThirdQuadrant
simp only [coreE₂HomologicalNat_i₃, WithBotTop.coe_lt_coe]
by_contra!
obtain ⟨p', hp'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ p + r by lia)
obtain ⟨q', hq'⟩ := Int.eq_ofNat_of_zero_le (show 0 ≤ q + 1 - r by lia)
exact hpq ⟨p', q'⟩ (by constructor <;> lia)

end

end SpectralObject

end Abelian
Expand Down
Loading