A (homological, or lower index) spectral sequence consists of:
1. A sequence of modules {Erp,q} for p,q ∈ℤ and r ≥0;
2. A collection of homomorphisms {drp,q: Erp,q →Erp-r,q+r-1 }, for p,q ∈ℤ and r ≥0, such that drp,q drp+r,q-r+1 = 0 ;
3. A collection of isomorphisms Er+1p,q →ker drp,q / image drp+r,q-r+1.
Alternatively a (cohomological, or upper index) spectral sequence consists of:
1’. A sequence of modules {Erp,q} for p,q ∈ℤ, and r ≥0;
2’. A collection of homomorphisms {drp,q: Erp,q →Erp+r,q-r+1} for p,q ∈ℤ, r ≥0 such that drp,q drp-r,q+r-1 = 0 ;
3’. A collection of isomorphisms Er+1p,q → ker drp,q / image drp-r,q+r-1.
The type SpectralSequence is a data type for working with spectral sequences. In this package, a spectral sequence is represented by a sequence of spectral sequence pages.
All spectral sequences arise from bounded filtrations of bounded chain complexes. Ascending filtrations of degree -1 chain complexes determine spectral sequences of the first type. Descending filtrations of degree 1 chain complex determine spectral sequences of the second type.
The object SpectralSequence is a type, with ancestor classes MutableHashTable < HashTable < Thing.