The $\operatorname{Tor}$ functors are derived functors of the tensor product functor. Given a homomorphism $f \colon L \to N$ of $R$-modules and an $R$-module $M$, this method returns the induced homomorphism $g \colon \operatorname{Tor}_i^R(L, M) \to \operatorname{Tor}_i^R(N, M)$.
i1 : R = ZZ/101[a..d];
|
i2 : L = R^1/ideal(a^2, b^2, c^2, a*c, b*d)
o2 = cokernel | a2 b2 c2 ac bd |
1
o2 : R-module, quotient of R
|
i3 : N = R^1/ideal(a^2, b^2, c^2, a*c, b*d, a*b)
o3 = cokernel | a2 b2 c2 ac bd ab |
1
o3 : R-module, quotient of R
|
i4 : f = map(N,L,1)
o4 = | 1 |
o4 : Matrix N <-- L
|
i5 : M = coker vars R
o5 = cokernel | a b c d |
1
o5 : R-module, quotient of R
|
i6 : betti freeResolution L
0 1 2 3 4
o6 = total: 1 5 9 7 2
0: 1 . . . .
1: . 5 3 . .
2: . . 6 7 2
o6 : BettiTally
|
i7 : betti freeResolution N
0 1 2 3 4
o7 = total: 1 6 9 5 1
0: 1 . . . .
1: . 6 7 2 .
2: . . 2 3 1
o7 : BettiTally
|
i8 : g1 = Tor_1(f, M)
o8 = {2} | 1 0 0 0 0 |
{2} | 0 0 0 0 0 |
{2} | 0 1 0 0 0 |
{2} | 0 0 1 0 0 |
{2} | 0 0 0 1 0 |
{2} | 0 0 0 0 1 |
o8 : Matrix
|
i9 : g2 = Tor_2(f, M)
o9 = {3} | 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 |
{3} | 1 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 |
{3} | 0 1 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 1 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 1 0 0 0 |
{4} | 0 0 0 0 0 0 0 0 1 |
o9 : Matrix
|
i10 : g3 = Tor_3(f, M)
o10 = {4} | 0 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 0 0 |
{5} | 0 1 0 0 0 0 0 |
{5} | 0 0 0 0 0 1 0 |
{5} | 0 0 0 0 0 0 1 |
o10 : Matrix
|
i11 : g4 = Tor_4(f, M)
o11 = {6} | 0 1 |
o11 : Matrix
|
i12 : assert(source g2 === Tor_2(L, M))
|
i13 : assert(target g2 === Tor_2(N, M))
|
i14 : prune ker g3
o14 = cokernel {5} | d c b a 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 d c b a 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 d c b a 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 d c b a |
4
o14 : R-module, quotient of R
|
i15 : prune coker g3
o15 = cokernel {4} | d c b a 0 0 0 0 |
{4} | 0 0 0 0 d c b a |
2
o15 : R-module, quotient of R
|
i16 : M = R^1/ideal(a^2,b^2,c^3,b*d)
o16 = cokernel | a2 b2 c3 bd |
1
o16 : R-module, quotient of R
|
i17 : h1 = Tor_1(M, f)
o17 = {2} | 1 0 0 0 |
{2} | 0 1 0 0 |
{2} | 0 0 1 0 |
{3} | 0 0 0 1 |
o17 : Matrix
|
i18 : h1' = Tor_1(f, M)
o18 = {2} | 1 0 0 0 0 0 0 0 0 0 |
{2} | 0 1 0 0 0 0 0 0 0 0 |
{2} | 0 0 1 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 |
{3} | 0 0 0 1 0 0 0 0 0 0 |
{3} | 0 0 0 0 1 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 0 0 0 0 0 |
o18 : Matrix
|
i19 : Tor_1(L, M)
o19 = subquotient ({2} | 1 0 0 0 0 0 0 0 0 0 |, {2} | -c 0 0 0 0 0 0 0 0 bd b2 a2 c3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |)
{2} | 0 1 0 0 0 0 0 0 0 0 | {2} | 0 0 -d 0 -ac -c2 0 0 0 0 0 0 0 bd b2 a2 c3 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 a 0 -c bd b2 0 0 | {2} | a -c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bd b2 a2 c3 0 0 0 0 0 0 0 0 |
{2} | 0 0 0 0 c a 0 0 bd b2 | {2} | 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bd b2 a2 c3 0 0 0 0 |
{2} | 0 0 1 0 0 0 0 0 0 0 | {2} | 0 0 b 0 0 0 0 ac c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bd b2 a2 c3 |
5
o19 : R-module, subquotient of R
|
i20 : Tor_1(M, L)
o20 = cokernel {2} | 0 0 0 0 0 0 bd c2 ac b2 a2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{2} | -d 0 0 0 0 0 0 0 0 0 0 bd c2 ac b2 a2 0 0 0 0 0 0 0 0 0 0 |
{2} | b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bd c2 ac b2 a2 0 0 0 0 0 |
{3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 bd c2 ac b2 a2 |
4
o20 : R-module, quotient of R
|
i21 : assert(source h1 == Tor_1(M, L))
|
i22 : assert(source h1' == Tor_1(L, M))
|
i23 : h2 = Tor_2(M, f)
o23 = {4} | 1 0 0 0 0 0 0 0 0 |
{4} | 0 1 0 0 0 0 0 0 0 |
{4} | 0 0 1 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 1 0 0 |
{5} | 0 0 0 0 0 0 0 1 0 |
{5} | 0 0 0 0 0 0 0 0 1 |
o23 : Matrix
|
i24 : h2' = Tor_2(f, M)
o24 = {4} | 0 1 0 0 0 0 0 0 0 0 0 -c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{4} | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 |
{4} | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
o24 : Matrix
|
i25 : prune h2
o25 = {4} | 1 0 0 0 0 0 |
{4} | 0 1 0 0 0 0 |
{4} | 0 0 1 0 0 0 |
{5} | 0 0 0 1 0 0 |
{5} | 0 0 0 0 1 0 |
{5} | 0 0 0 0 0 1 |
o25 : Matrix
|
i26 : prune h2'
o26 = {4} | 0 1 0 0 0 0 |
{4} | 0 0 1 0 0 0 |
{4} | 1 0 0 0 0 0 |
{5} | 0 0 0 1 0 0 |
{5} | 0 0 0 0 1 0 |
{5} | 0 0 0 0 0 1 |
o26 : Matrix
|