ChainComplex
ChainComplex -- the class of all chain complexes.
If C is a chain complex, then C_i will produce
the i-th module in the complex, and C.dd_i will
produce the differential whose source is C_i.
A new chain complex can be made with C = new ChainComplex. This will
automatically initialize C.dd, in which the differentials are stored.
The modules can be installed with statements like C#i=M and the
differentials can be installed with statements like C.dd#i=d.
See also ChainComplexMap for a discussion of maps between
chain complexes. (The boundary map C.dd is regarded as one.)
Here are some functions for producing or manipulating chain complexes.
The default display for a chain complex shows the modules and
the stage at which they appear.
i1 : R = ZZ/101[x,y,z]
o1 = R
o1 : PolynomialRing |
i2 : C = resolution cokernel matrix {{x,y,z}}
1 3 3 1
o2 = R <-- R <-- R <-- R
0 1 2 3
o2 : ChainComplex |
In order to see the matrices of the differentials, examine 'C.dd'.
i3 : C.dd
1
o3 = -1 : 0 <----- R : 0
0
1 3
0 : R <----------------- R : 1
{0} | x y z |
3 3
1 : R <-------------------- R : 2
{1} | -y -z 0 |
{1} | x 0 -z |
{1} | 0 x y |
3 1
2 : R <-------------- R : 3
{2} | z |
{2} | -y |
{2} | x |
o3 : ChainComplexMap |
See also Resolution and dd.



