As a first example, consider two Koszul complexes $C$ and $D$. From a random map $f : R^1 \to \operatorname{Hom}(C, D)$, we construct the corresponding map of chain complexes $g : C \to D$.
i1 : R = ZZ/101[a,b,c]
o1 = R
o1 : PolynomialRing
|
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 : H = 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 = randomComplexMap(H, complex R^{-2})
20 1
o5 = 0 : R <----------------------------------------- R : 0
{0} | 24a2-36ab-29b2-30ac+19bc+19c2 |
{1} | -10a-29b-8c |
{1} | -22a-29b-24c |
{1} | -38a-16b+39c |
{1} | 21a+34b+19c |
{1} | -47a-39b-18c |
{1} | -13a-43b-15c |
{1} | -28a-47b+38c |
{1} | 2a+16b+22c |
{1} | 45a-34b-48c |
{2} | -47 |
{2} | 47 |
{2} | 19 |
{2} | -16 |
{2} | 7 |
{2} | 15 |
{2} | -23 |
{2} | 39 |
{2} | 43 |
{3} | 0 |
o5 : ComplexMap
|
i6 : isWellDefined f
o6 = true
|
i7 : g = homomorphism f
1 1
o7 = 0 : R <------------------------------------- R : 0
| 24a2-36ab-29b2-30ac+19bc+19c2 |
3 3
1 : R <-------------------------------------------------- R : 1
{2} | -10a-29b-8c 21a+34b+19c -28a-47b+38c |
{2} | -22a-29b-24c -47a-39b-18c 2a+16b+22c |
{2} | -38a-16b+39c -13a-43b-15c 45a-34b-48c |
3 3
2 : R <----------------------- R : 2
{4} | -47 -16 -23 |
{4} | 47 7 39 |
{4} | 19 15 43 |
1 1
3 : R <----- R : 3
0
o7 : ComplexMap
|
i8 : isWellDefined g
o8 = true
|
i9 : assert not isCommutative g
|
The map $g : C \to D$ corresponding to a random map into $\operatorname{Hom}(C,D)$ does not generally commute with the differentials. However, if the element of $\operatorname{Hom}(C,D)$ is a cycle, then the corresponding map does commute.
i10 : f = randomComplexMap(H, complex R^{-2}, Cycle => true)
20 1
o10 = 0 : R <--------------------------- R : 0
{0} | -17a2-11b2+48c2 |
{1} | -17a |
{1} | -11a |
{1} | 48a |
{1} | -17b |
{1} | -11b |
{1} | 48b |
{1} | -17c |
{1} | -11c |
{1} | 48c |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{2} | 0 |
{3} | 0 |
o10 : ComplexMap
|
i11 : isWellDefined f
o11 = true
|
i12 : g = homomorphism f
1 1
o12 = 0 : R <----------------------- R : 0
| -17a2-11b2+48c2 |
3 3
1 : R <-------------------------- R : 1
{2} | -17a -17b -17c |
{2} | -11a -11b -11c |
{2} | 48a 48b 48c |
3 3
2 : R <----- R : 2
0
1 1
3 : R <----- R : 3
0
o12 : ComplexMap
|
i13 : isWellDefined g
o13 = true
|
i14 : assert isCommutative g
|
i15 : assert(degree g === 0)
|
i16 : assert(source g === C)
|
i17 : assert(target g === D)
|
i18 : assert(homomorphism' g == f)
|
i19 : f1 = randomComplexMap(H, complex R^1, Degree => -2)
6 1
o19 = -2 : R <------------------------------------------ R : 0
{-2} | 36a2+35ab-38b2+11ac+33bc+40c2 |
{-2} | 11a2+46ab+b2-28ac-3bc+22c2 |
{-2} | -47a2-23ab+2b2-7ac+29bc-47c2 |
{-1} | 15a-37b-13c |
{-1} | -10a+30b-18c |
{-1} | 39a+27b-22c |
o19 : ComplexMap
|
i20 : f2 = map(target f1, (source f1)[2], i -> f1_(i+2))
6 1
o20 = -2 : R <------------------------------------------ R : -2
{-2} | 36a2+35ab-38b2+11ac+33bc+40c2 |
{-2} | 11a2+46ab+b2-28ac-3bc+22c2 |
{-2} | -47a2-23ab+2b2-7ac+29bc-47c2 |
{-1} | 15a-37b-13c |
{-1} | -10a+30b-18c |
{-1} | 39a+27b-22c |
o20 : ComplexMap
|
i21 : assert isWellDefined f2
|
i22 : g1 = homomorphism f1
1
o22 = -2 : 0 <----- R : 0
0
3
-1 : 0 <----- R : 1
0
1 3
0 : R <--------------------------------------------------------------------------------------------- R : 2
| 36a2+35ab-38b2+11ac+33bc+40c2 11a2+46ab+b2-28ac-3bc+22c2 -47a2-23ab+2b2-7ac+29bc-47c2 |
3 1
1 : R <------------------------ R : 3
{2} | 15a-37b-13c |
{2} | -10a+30b-18c |
{2} | 39a+27b-22c |
o22 : ComplexMap
|
i23 : g2 = homomorphism f2
1
o23 = -2 : 0 <----- R : 0
0
3
-1 : 0 <----- R : 1
0
1 3
0 : R <--------------------------------------------------------------------------------------------- R : 2
| 36a2+35ab-38b2+11ac+33bc+40c2 11a2+46ab+b2-28ac-3bc+22c2 -47a2-23ab+2b2-7ac+29bc-47c2 |
3 1
1 : R <------------------------ R : 3
{2} | 15a-37b-13c |
{2} | -10a+30b-18c |
{2} | 39a+27b-22c |
o23 : ComplexMap
|
i24 : assert(g1 == g2)
|
i25 : assert isWellDefined g1
|
i26 : assert isWellDefined g2
|
i27 : homomorphism' g1 == f1
o27 = true
|
i28 : homomorphism' g2 == f1
o28 = true
|