The tensor product is a complex D whose ith component is the direct sum of C1j ⊗C2k over all i = j+k. The differential on C1j ⊗C2k is the differential ddC1 ⊗idC2 + (-1)j idC1 ⊗ddC2.
As the next example illustrates, the Koszul complex can be constructed via iterated tensor products.
i1 : S = ZZ/101[a..c] o1 = S o1 : PolynomialRing |
i2 : Ca = complex {matrix{{a}}}
1 1
o2 = S <-- S
0 1
o2 : Complex
|
i3 : Cb = complex {matrix{{b}}}
1 1
o3 = S <-- S
0 1
o3 : Complex
|
i4 : Cc = complex {matrix{{c}}}
1 1
o4 = S <-- S
0 1
o4 : Complex
|
i5 : Cab = Cb ** Ca
1 2 1
o5 = S <-- S <-- S
0 1 2
o5 : Complex
|
i6 : dd^Cab
1 2
o6 = 0 : S <----------- S : 1
| a b |
2 1
1 : S <-------------- S : 2
{1} | b |
{1} | -a |
o6 : ComplexMap
|
i7 : indices Cab_1
o7 = {{0, 1}, {1, 0}}
o7 : List
|
i8 : Cab_1_[{1,0}]
o8 = {1} | 0 |
{1} | 1 |
2 1
o8 : Matrix S <--- S
|
i9 : Cabc = Cc ** Cab
1 3 3 1
o9 = S <-- S <-- S <-- S
0 1 2 3
o9 : Complex
|
i10 : Cc ** Cb ** Ca
1 3 3 1
o10 = S <-- S <-- S <-- S
0 1 2 3
o10 : Complex
|
i11 : dd^Cabc
1 3
o11 = 0 : S <------------- S : 1
| a b c |
3 3
1 : S <-------------------- S : 2
{1} | b c 0 |
{1} | -a 0 c |
{1} | 0 -a -b |
3 1
2 : S <-------------- S : 3
{2} | c |
{2} | -b |
{2} | a |
o11 : ComplexMap
|
If one of the arguments is a module, it is considered as a complex concentrated in homological degree 0.
i12 : Cabc ** (S^1/(a,b,c))
o12 = cokernel | a b c | <-- cokernel {1} | a b c 0 0 0 0 0 0 | <-- cokernel {2} | a b c 0 0 0 0 0 0 | <-- cokernel {3} | a b c |
{1} | 0 0 0 a b c 0 0 0 | {2} | 0 0 0 a b c 0 0 0 |
0 {1} | 0 0 0 0 0 0 a b c | {2} | 0 0 0 0 0 0 a b c | 3
1 2
o12 : Complex
|
i13 : S^2 ** Cabc
2 6 6 2
o13 = S <-- S <-- S <-- S
0 1 2 3
o13 : Complex
|
Let’s check the differential (Once the BUG is fixed TODO)!!
i14 : Cabc_2
3
o14 = S
o14 : S-module, free, degrees {3:2}
|