An element of the complex $\operatorname{Hom}(C, D)$ corresponds to a map of complexes from $C$ to $D$. Given an element in the $i$-th term, this method returns the corresponding map of complexes of degree $i$.
As a first example, consider two Koszul complexes $C$ and $D$. From a random map $f \colon R^1 \to Hom(C, D)$, we construct the corresponding map of chain complexes $g \colon C \to D$.
i1 : R = ZZ/101[a,b,c]; |
i2 : C = freeResolution ideal"a,b,c" 1 3 3 1 o2 = R <-- R <-- R <-- R 0 1 2 3 o2 : Complex |
i3 : D = freeResolution ideal"a2,b2,c2" 1 3 3 1 o3 = R <-- R <-- R <-- R 0 1 2 3 o3 : Complex |
i4 : E = Hom(C,D) 1 6 15 20 15 6 1 o4 = R <-- R <-- R <-- R <-- R <-- R <-- R -3 -2 -1 0 1 2 3 o4 : Complex |
i5 : f = random(E_2, R^{-5}) o5 = {4} | 24a-29b-10c | {4} | -36a+19b-29c | {4} | -30a+19b-8c | {5} | -22 | {5} | -29 | {5} | -24 | 6 1 o5 : Matrix R <--- R |
i6 : g = homomorphism(2, f, E) 3 1 o6 = 2 : R <------------------------ R : 0 {4} | 24a-29b-10c | {4} | -36a+19b-29c | {4} | -30a+19b-8c | 1 3 3 : R <----------------------- R : 1 {6} | -22 -29 -24 | 3 4 : 0 <----- R : 2 0 1 5 : 0 <----- R : 3 0 o6 : ComplexMap |
i7 : assert isWellDefined g |
i8 : assert not isCommutative g |
The map $g \colon C \to D$ corresponding to a random map into $Hom(C,D)$ does not generally commute with the differentials. However, if the element of $Hom(C,D)$ is a cycle, then the corresponding map does commute.
i9 : h = randomComplexMap(E, complex R^{-2}, Cycle => true, Degree => -1) 15 1 o9 = -1 : R <--------------------------------------------------------------------- R : 0 {-1} | -38a3-16a2b-47ab2-39b3+39a2c-17abc+15b2c-13ac2-3bc2-15c3 | {-1} | -28a3+16a2b-38ab2-34b3-27a2c-8abc-27b2c-5ac2+7bc2+15c3 | {-1} | 2a3-a2b+43ab2+47b3-16a2c-35abc+19b2c+35ac2-41bc2+43c3 | {0} | 28a2+47ab-34b2+27ac+47bc-11c2 | {0} | -45a2-13ab-39b2+10ac+15bc+40c2 | {0} | 16a2-20ab-43b2-15ac-15bc | {0} | -2a2+ab+11b2-22ac+19bc-19c2 | {0} | 47a2-47ab+35ac-39bc-18c2 | {0} | 23a2+24ab+33b2+45ac-3bc-15c2 | {0} | -2ab-16b2-28ac+32bc+38c2 | {0} | 17a2-43ab-47b2-3ac+48bc-48c2 | {0} | 36a2-43ab-39b2-5ac-36bc+15c2 | {1} | -17a-11b+48c | {1} | -36a-35b-11c | {1} | -38a+33b+40c | o9 : ComplexMap |
i10 : f = h_0 o10 = {-1} | -38a3-16a2b-47ab2-39b3+39a2c-17abc+15b2c-13ac2-3bc2-15c3 | {-1} | -28a3+16a2b-38ab2-34b3-27a2c-8abc-27b2c-5ac2+7bc2+15c3 | {-1} | 2a3-a2b+43ab2+47b3-16a2c-35abc+19b2c+35ac2-41bc2+43c3 | {0} | 28a2+47ab-34b2+27ac+47bc-11c2 | {0} | -45a2-13ab-39b2+10ac+15bc+40c2 | {0} | 16a2-20ab-43b2-15ac-15bc | {0} | -2a2+ab+11b2-22ac+19bc-19c2 | {0} | 47a2-47ab+35ac-39bc-18c2 | {0} | 23a2+24ab+33b2+45ac-3bc-15c2 | {0} | -2ab-16b2-28ac+32bc+38c2 | {0} | 17a2-43ab-47b2-3ac+48bc-48c2 | {0} | 36a2-43ab-39b2-5ac-36bc+15c2 | {1} | -17a-11b+48c | {1} | -36a-35b-11c | {1} | -38a+33b+40c | 15 1 o10 : Matrix R <--- R |
i11 : g = homomorphism(-1, f, E) 1 o11 = -1 : 0 <----- R : 0 0 1 3 0 : R <----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- R : 1 | -38a3-16a2b-47ab2-39b3+39a2c-17abc+15b2c-13ac2-3bc2-15c3 -28a3+16a2b-38ab2-34b3-27a2c-8abc-27b2c-5ac2+7bc2+15c3 2a3-a2b+43ab2+47b3-16a2c-35abc+19b2c+35ac2-41bc2+43c3 | 3 3 1 : R <---------------------------------------------------------------------------------------------------- R : 2 {2} | 28a2+47ab-34b2+27ac+47bc-11c2 -2a2+ab+11b2-22ac+19bc-19c2 -2ab-16b2-28ac+32bc+38c2 | {2} | -45a2-13ab-39b2+10ac+15bc+40c2 47a2-47ab+35ac-39bc-18c2 17a2-43ab-47b2-3ac+48bc-48c2 | {2} | 16a2-20ab-43b2-15ac-15bc 23a2+24ab+33b2+45ac-3bc-15c2 36a2-43ab-39b2-5ac-36bc+15c2 | 3 1 2 : R <------------------------ R : 3 {4} | -17a-11b+48c | {4} | -36a-35b-11c | {4} | -38a+33b+40c | o11 : ComplexMap |
i12 : assert isWellDefined g |
i13 : assert isCommutative g |
i14 : assert(degree g === -1) |
i15 : assert(source g === C) |
i16 : assert(target g === D) |
i17 : assert(homomorphism' g == h) |