Let $C$ be a chain complex such that each term is a free module. Let $D$ be a chain complex which is exact at the $k$-th term for all $k > j$. Given a map of modules $f \colon C_i \to D_j$ such that the image of $f \circ \operatorname{dd}^C_{i+1}$ is contained in the image of $\operatorname{dd}^D_{j+1}$, this method constructs a morphism of chain complexes $g \colon C \to D$ of degree $j-i$ such that $g_i = f$.
$\phantom{WWWW} \begin{array}{cccccc} 0 & \!\!\leftarrow\!\! & C_{i} & \!\!\leftarrow\!\! & C_{i+1} & \!\!\leftarrow\!\! & C_{i+2} & \dotsb \\ & & \downarrow \, {\scriptstyle f} & & \downarrow \, {\scriptstyle g_{i+1}} && \downarrow \, {\scriptstyle g_{i+2}} \\ 0 & \!\!\leftarrow\!\! & D_{j} & \!\!\leftarrow\!\! & D_{j+1} & \!\!\leftarrow\!\! & D_{j+2} & \dotsb \\ \end{array} $
i1 : S = ZZ/101[a..d];
|
i2 : I = ideal(a*b*c, b*c*d, a*d^2)
2
o2 = ideal (a*b*c, b*c*d, a*d )
o2 : Ideal of S
|
i3 : C = S^{{-3}} ** freeResolution (I:a*c*d)
1 2 1
o3 = S <-- S <-- S
0 1 2
o3 : Complex
|
i4 : D = freeResolution I
1 3 2
o4 = S <-- S <-- S
0 1 2
o4 : Complex
|
i5 : f = map(D_0, C_0, matrix{{a*c*d}})
o5 = | acd |
1 1
o5 : Matrix S <-- S
|
i6 : g = extend(D, C, f)
1 1
o6 = 0 : S <----------- S : 0
| acd |
3 2
1 : S <--------------- S : 1
{3} | 0 0 |
{3} | a 0 |
{3} | 0 c |
2 1
2 : S <------------- S : 2
{4} | 0 |
{5} | 1 |
o6 : ComplexMap
|
i7 : assert isWellDefined g
|
i8 : assert isComplexMorphism g
|
i9 : assert(g_0 == f)
|
i10 : E = cone g
1 4 4 1
o10 = S <-- S <-- S <-- S
0 1 2 3
o10 : Complex
|
i11 : dd^E
1 4
o11 = 0 : S <----------------------- S : 1
| acd abc bcd ad2 |
4 4
1 : S <------------------------ S : 2
{3} | -b -d 0 0 |
{3} | 0 0 -d 0 |
{3} | a 0 a -ad |
{3} | 0 c 0 bc |
4 1
2 : S <-------------- S : 3
{4} | d |
{4} | -b |
{4} | 0 |
{5} | 1 |
o11 : ComplexMap
|
i12 : I = monomialCurveIdeal(S, {1,2,3})
2 2
o12 = ideal (c - b*d, b*c - a*d, b - a*c)
o12 : Ideal of S
|
i13 : K = ideal(I_1^2, I_2^2)
2 2 2 2 4 2 2 2
o13 = ideal (b c - 2a*b*c*d + a d , b - 2a*b c + a c )
o13 : Ideal of S
|
i14 : FI = freeResolution I
1 3 2
o14 = S <-- S <-- S
0 1 2
o14 : Complex
|
i15 : FK = freeResolution K
1 2 1
o15 = S <-- S <-- S
0 1 2
o15 : Complex
|
i16 : f = map(FI_0, FK_0, 1)
o16 = | 1 |
1 1
o16 : Matrix S <-- S
|
i17 : g = extend(FI, FK, f)
1 1
o17 = 0 : S <--------- S : 0
| 1 |
3 2
1 : S <--------------------- S : 1
{2} | b2-ac c2 |
{2} | 0 -ad |
{2} | 0 ac |
2 1
2 : S <---------------------------------- S : 2
{3} | -ab2c2+a2c3+ab3d-a2bcd |
{3} | -ab3c+a2bc2+a2b2d-a3cd |
o17 : ComplexMap
|
i18 : assert isWellDefined g
|
i19 : assert isComplexMorphism g
|
i20 : assert(g_0 == f)
|
i21 : C = cone (dual g)[- codim K]
1 4 4 1
o21 = S <-- S <-- S <-- S
0 1 2 3
o21 : Complex
|
i22 : dd^C
1 4
o22 = 0 : S <----------------------------------------------------------------------------------------- S : 1
{-8} | -ab2c2+a2c3+ab3d-a2bcd -ab3c+a2bc2+a2b2d-a3cd b2c2-2abcd+a2d2 -b4+2ab2c-a2c2 |
4 4
1 : S <----------------------------------------- S : 2
{-3} | c -b a 0 |
{-3} | -d c -b 0 |
{-4} | b2-ac 0 0 b4-2ab2c+a2c2 |
{-4} | c2 -ad ac b2c2-2abcd+a2d2 |
4 1
2 : S <------------------- S : 3
{-2} | -b2+ac |
{-2} | -bc+ad |
{-2} | -c2+bd |
{0} | 1 |
o22 : ComplexMap
|
i23 : dd^(minimize C)
1 4
o23 = 0 : S <----------------------------------------------------------------------------------------- S : 1
{-8} | -ab2c2+a2c3+ab3d-a2bcd -ab3c+a2bc2+a2b2d-a3cd b2c2-2abcd+a2d2 -b4+2ab2c-a2c2 |
4 3
1 : S <------------------------- S : 2
{-3} | c -b a |
{-3} | -d c -b |
{-4} | b2-ac 0 0 |
{-4} | c2 -ad ac |
o23 : ComplexMap
|
i24 : assert(ideal relations HH_0 C == K:I)
|
i25 : f = map(FK_0, FI_1, matrix {{a*c^2-a*b*d, -b*c^2+a*c*d, -c^3+a*d^2}}, Degree => 1)
o25 = | ac2-abd -bc2+acd -c3+ad2 |
1 3
o25 : Matrix S <-- S
|
i26 : assert isHomogeneous f
|
i27 : assert isWellDefined f
|
i28 : g = extend(FK, FI, f, (0,1))
1 3
o28 = 0 : S <-------------------------------- S : 1
| ac2-abd -bc2+acd -c3+ad2 |
2 2
1 : S <--------------- S : 2
{4} | 0 0 |
{4} | 1 0 |
o28 : ComplexMap
|
i29 : assert isWellDefined g
|
i30 : assert isCommutative g
|
i31 : assert(degree g === -1)
|
i32 : assert isHomogeneous g
|