# differential of a chain complex -- get the maps between the terms in a complex

## Synopsis

• Usage:
dd^C
dd_C
• Inputs:
• C, ,
• Outputs:
• , a map of degree -1

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)