Skip to content

Commit ad15cbc

Browse files
joelrioupfaffelh
authored andcommitted
feat(Algebra/Homology/SpectralSequence): complex shapes for pages of spectral sequences (leanprover-community#35355)
1 parent 6eb65d6 commit ad15cbc

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,7 @@ public import Mathlib.Algebra.Homology.ShortComplex.ShortExact
657657
public import Mathlib.Algebra.Homology.ShortComplex.SnakeLemma
658658
public import Mathlib.Algebra.Homology.Single
659659
public import Mathlib.Algebra.Homology.SingleHomology
660+
public import Mathlib.Algebra.Homology.SpectralSequence.ComplexShape
660661
public import Mathlib.Algebra.Homology.Square
661662
public import Mathlib.Algebra.Homology.TotalComplex
662663
public import Mathlib.Algebra.Homology.TotalComplexShift
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/-
2+
Copyright (c) 2026 Joël Riou. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Joël Riou
5+
-/
6+
module
7+
8+
public import Mathlib.Algebra.Homology.ComplexShape
9+
10+
/-!
11+
# Complex shapes for pages of spectral sequences
12+
13+
In this file, we define complex shapes which correspond
14+
to pages of spectral sequences:
15+
* `ComplexShape.spectralSequenceNat`: for any `u : ℤ × ℤ`, this
16+
is the complex shape on `ℕ × ℕ` corresponding to differentials
17+
of `ComplexShape.up' u : ComplexShape (ℤ × ℤ)` with source
18+
and target in `ℕ × ℕ`. (With `u := (r, 1 - r)`, this will
19+
apply to the `r`th-page of first quadrant `E₂` cohomological
20+
spectral sequence).
21+
* `ComplexShape.spectralSequenceFin`: for any `u : ℤ × ℤ` and `l : ℕ`,
22+
this is a similar definition as `ComplexShape.spectralSequenceNat`
23+
but for `ℤ × Fin l` (identified as a subset of `ℤ × ℤ`). (This could
24+
be used for spectral sequences associated to a *finite* filtration.)
25+
26+
-/
27+
28+
@[expose] public section
29+
30+
namespace ComplexShape
31+
32+
/-- For `u : ℤ × ℤ`, this is the complex shape on `ℕ × ℕ`, which
33+
connects `a` to `b` when the equality `a + u = b` holds in `ℤ × ℤ`. -/
34+
def spectralSequenceNat (u : ℤ × ℤ) : ComplexShape (ℕ × ℕ) where
35+
Rel a b := a.1 + u.1 = b.1 ∧ a.2 + u.2 = b.2
36+
next_eq _ _ := by ext <;> lia
37+
prev_eq _ _ := by ext <;> lia
38+
39+
@[simp]
40+
lemma spectralSequenceNat_rel_iff (u : ℤ × ℤ) (a b : ℕ × ℕ) :
41+
(spectralSequenceNat u).Rel a b ↔ a.1 + u.1 = b.1 ∧ a.2 + u.2 = b.2 := Iff.rfl
42+
43+
/-- For `l : ℕ` and `u : ℤ × ℤ`, this is the complex shape on `ℤ × Fin l`, which
44+
connects `a` to `b` when the equality `a + u = b` holds in `ℤ × ℕ`. -/
45+
def spectralSequenceFin (l : ℕ) (u : ℤ × ℤ) : ComplexShape (ℤ × Fin l) where
46+
Rel a b := a.1 + u.1 = b.1 ∧ a.2.1 + u.2 = b.2.1
47+
next_eq _ _ := by ext <;> lia
48+
prev_eq _ _ := by ext <;> lia
49+
50+
@[simp]
51+
lemma spectralSequenceFin_rel_iff {l : ℕ} (u : ℤ × ℤ) (a b : ℤ × Fin l) :
52+
(spectralSequenceFin l u).Rel a b ↔ a.1 + u.1 = b.1 ∧ a.2 + u.2 = b.2 := Iff.rfl
53+
54+
end ComplexShape

0 commit comments

Comments
 (0)