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