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