Macaulay2 » Documentation
Packages » Complexes :: Tor_ZZ(Matrix,Module)
next | previous | forward | backward | up | index | toc

Tor_ZZ(Matrix,Module) -- make the induced map on Tor modules

Synopsis

Description

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

Although the $\operatorname{Tor}$ functors are symmetric, the actual matrices depend on the order of the arguments.

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

See also

Ways to use this method: