A (homological, or lower index) spectral sequence page consists of:
1. A fixed integer $r \geq 0$, the page number;
2. A sequence of modules $\{E^r_{p,q}\}$ for $p,q \in \mathbb{Z}$;
3. A collection of homomorphisms $\{d^r_{p,q}: E^r_{p,q} \rightarrow E^r_{p-r,q+r-1}\}$ for $p,q \in \mathbb{Z}, r \geq 0$ such that $d^r_{p,q} d^r_{p+r,q-r+1} = 0$ ;
4. A collection of isomorphisms $E^{r+1}_{p,q} \rightarrow ker d^r_{p,q} / image d^r_{p+r,q-r+1}$.
Alternatively a (cohomological, or upper index) spectral sequence page consists of:
1'. A fixed integer $r \geq 0$, the page number;
2'. A sequence of modules $\{E_r^{p,q}\}$ for $p,q \in \mathbb{Z}$;
3'. A collection of homomorphisms $\{d_r^{p,q}: E_r^{p,q} \rightarrow E_r^{p+r,q-r+1}\}$ for $ p,q \in \mathbb{Z}, r \geq 0$ such that $d_r^{p,q} d_r^{p-r,q+r-1} = 0$ ;
4'. A collection of isomorphisms $E_{r+1}^{p,q} \rightarrow ker d_r^{p,q} / image d_r^{p-r,q+r-1}$.
The type SpectralSequencePage is a data type for working with spectral sequences and spectral sequence pages.
The isomorphisms $4$ and $4$' are not explicitly part of the data type, although they can be obtained by using the command homologyIsomorphism.
The object SpectralSequencePage is a type, with ancestor classes Page < MutableHashTable < HashTable < Thing.