Let's make a chain complex.
i1 : R = ZZ/101[x,y,z];
|
i2 : C = res coker matrix {{x,y^2,z^3}};
|
Some simple functions for discovering the shape of
C.
i3 : length C
o3 = 3
|
i4 : max C
o4 = 4
|
i5 : min C
o5 = 0
|
In order to see the matrices of the differential maps in a chain complex, examine
C.dd.
i6 : C.dd
1 3
o6 = 0 : R <--------------- R : 1
| x y2 z3 |
3 3
1 : R <----------------------- R : 2
{1} | -y2 -z3 0 |
{2} | x 0 -z3 |
{3} | 0 x y2 |
3 1
2 : R <--------------- R : 3
{3} | z3 |
{4} | -y2 |
{5} | x |
1
3 : R <----- 0 : 4
0
o6 : ChainComplexMap
|
If
C is a chain complex, then
C_i will produce the
i-th module in the complex,
C^i will produce the
-i-th module in it, and
C.dd_i will produce the differential whose source is
C_i.
i7 : C_1
3
o7 = R
o7 : R-module, free, degrees {1..3}
|
i8 : C^-1
3
o8 = R
o8 : R-module, free, degrees {1..3}
|
i9 : C.dd_2
o9 = {1} | -y2 -z3 0 |
{2} | x 0 -z3 |
{3} | 0 x y2 |
3 3
o9 : Matrix R <-- R
|
The function
betti can be used to display the ranks of the free modules in
C, together with the distribution of the basis elements by degree, at least for resolutions of homogeneous modules.
i10 : betti C
0 1 2 3
o10 = total: 1 3 3 1
0: 1 1 . .
1: . 1 1 .
2: . 1 1 .
3: . . 1 1
o10 : BettiTally
|
The ranks are displayed in the top row, and below that in row
i column
j is displayed the number of basis elements of degree
i+j in
C_j.