A chain complex is a sequence of modules connected by homomorphisms, called differentials, such that the composition of any two consecutive maps is zero.
One can access the differential of a complex as follows.
i1 : R = QQ[a..d]; |
i2 : I = ideal(a*d-b*c, b^2-a*c, c^2-b*d); o2 : Ideal of R |
i3 : C = freeResolution(R^1/I) 1 3 2 o3 = R <-- R <-- R 0 1 2 o3 : Complex |
i4 : dd^C 1 3 o4 = 0 : R <------------------------- R : 1 | b2-ac bc-ad c2-bd | 3 2 1 : R <----------------- R : 2 {2} | -c d | {2} | b -c | {2} | -a b | o4 : ComplexMap |
i5 : C.dd 1 3 o5 = 0 : R <------------------------- R : 1 | b2-ac bc-ad c2-bd | 3 2 1 : R <----------------- R : 2 {2} | -c d | {2} | b -c | {2} | -a b | o5 : ComplexMap |
i6 : assert(dd^C === C.dd) |
i7 : assert(source dd^C === C) |
i8 : assert(target dd^C === C) |
i9 : assert(degree dd^C === -1) |
The composition of the differential with itself is zero.
i10 : (dd^C)^2 == 0 o10 = true |
The individual maps between terms are indexed by their source.
i11 : dd^C_2 o11 = {2} | -c d | {2} | b -c | {2} | -a b | 3 2 o11 : Matrix R <--- R |
i12 : assert(source dd^C_2 === C_2) |
i13 : assert(target dd^C_2 === C_1) |