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) |