This routine isolates the terms in the complex and forgets the differentials
i1 : R = ZZ/101[a,b,c,d,e]; |
i2 : I = intersect(ideal(a,b),ideal(c,d,e)) o2 = ideal (b*e, a*e, b*d, a*d, b*c, a*c) o2 : Ideal of R |
i3 : C = (dual freeResolution I)[-4]
1 5 9 6 1
o3 = R <-- R <-- R <-- R <-- R
0 1 2 3 4
o3 : Complex
|
i4 : dd^C
1 5
o4 = 0 : R <------------------------- R : 1
{-5} | -e d -c -b a |
5 9
1 : R <------------------------------------ R : 2
{-4} | d -c -b a 0 0 0 0 0 |
{-4} | e 0 0 0 -c -b a 0 0 |
{-4} | 0 e 0 0 -d 0 0 -b a |
{-4} | 0 0 e 0 0 -d 0 c 0 |
{-4} | 0 0 0 e 0 0 -d 0 c |
9 6
2 : R <----------------------------- R : 3
{-3} | -b a 0 0 0 0 |
{-3} | 0 0 -b a 0 0 |
{-3} | -d 0 c 0 0 0 |
{-3} | 0 -d 0 c 0 0 |
{-3} | 0 0 0 0 -b a |
{-3} | -e 0 0 0 c 0 |
{-3} | 0 -e 0 0 0 c |
{-3} | 0 0 -e 0 d 0 |
{-3} | 0 0 0 -e 0 d |
6 1
3 : R <--------------- R : 4
{-2} | ac |
{-2} | bc |
{-2} | ad |
{-2} | bd |
{-2} | ae |
{-2} | be |
o4 : ComplexMap
|
i5 : G = gradedModule C
1 5 9 6 1
o5 = R <-- R <-- R <-- R <-- R
0 1 2 3 4
o5 : Complex
|
i6 : dd^G o6 = 0 o6 : ComplexMap |
i7 : assert(isWellDefined G) |
i8 : assert(G != C) |
The homology of a complex already has zero differential.
i9 : H = HH C
o9 = cokernel {-5} | -e d -c -b a | <-- subquotient ({-4} | d c 0 b 0 0 a 0 0 0 |, {-4} | d -c -b a 0 0 0 0 0 |) <-- subquotient ({-3} | c b a 0 0 0 0 |, {-3} | -b a 0 0 0 0 |) <-- subquotient ({-2} | ac |, {-2} | ac |) <-- image 0
{-4} | e 0 c 0 b 0 0 a 0 0 | {-4} | e 0 0 0 -c -b a 0 0 | {-3} | d 0 0 b 0 a 0 | {-3} | 0 0 -b a 0 0 | {-2} | bc | {-2} | bc |
0 {-4} | 0 -e d 0 0 b 0 0 a 0 | {-4} | 0 e 0 0 -d 0 0 -b a | {-3} | 0 d 0 -c 0 0 0 | {-3} | -d 0 c 0 0 0 | {-2} | ad | {-2} | ad | 4
{-4} | 0 0 0 -e d -c 0 0 0 a | {-4} | 0 0 e 0 0 -d 0 c 0 | {-3} | 0 0 -d 0 0 c 0 | {-3} | 0 -d 0 c 0 0 | {-2} | bd | {-2} | bd |
{-4} | 0 0 0 0 0 0 e -d c b | {-4} | 0 0 0 e 0 0 -d 0 c | {-3} | e 0 0 0 b 0 a | {-3} | 0 0 0 0 -b a | {-2} | ae | {-2} | ae |
{-3} | 0 e 0 0 -c 0 0 | {-3} | -e 0 0 0 c 0 | {-2} | be | {-2} | be |
1 {-3} | 0 0 -e 0 0 0 c | {-3} | 0 -e 0 0 0 c |
{-3} | 0 0 0 e -d 0 0 | {-3} | 0 0 -e 0 d 0 | 3
{-3} | 0 0 0 0 0 -e d | {-3} | 0 0 0 -e 0 d |
2
o9 : Complex
|
i10 : prune H
o10 = cokernel {-5} | e d c b a | <-- cokernel {-3} | e d c | <-- cokernel {-2} | b a |
0 1 2
o10 : Complex
|
i11 : dd^H == 0 o11 = true |
i12 : assert(H == gradedModule H) |