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

torSymmetry(ZZ,Module,Module) -- makes the canonical isomorphism realizing the symmetry of Tor

Synopsis

Description

Tensor commutativity gives rise to an isomorphism from $\operatorname{Tor}_i^R(M, N)$ to $\operatorname{Tor}_i^R(N, M)$. This method returns this isomorphism.

We compute the Betti numbers of the Veronese surface in two ways: $\operatorname{Tor}(M, \ZZ/101)$ or via Koszul cohomology $\operatorname{Tor}(\ZZ/101, M)$.

i1 : S = ZZ/101[a..f];
i2 : I = trim minors(2, genericSymmetricMatrix(S, 3))

             2                               2                    2
o2 = ideal (e  - d*f, c*e - b*f, c*d - b*e, c  - a*f, b*c - a*e, b  - a*d)

o2 : Ideal of S
i3 : M = S^1/I;
i4 : N = coker vars S

o4 = cokernel | a b c d e f |

                            1
o4 : S-module, quotient of S
i5 : f1 = torSymmetry(1,M,N)

o5 = {2} | 0  -1 0  0  0  0  |
     {2} | -1 0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  -1 0  |
     {2} | 0  0  0  -1 0  0  |
     {2} | 0  0  -1 0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  -1 |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |
     {2} | 0  0  0  0  0  0  |

o5 : Matrix
i6 : f2 = torSymmetry(1,N,M)

o6 = {2} | 0  -1 0 0  0  0  0  0 0  0 0 0  0 0  0 0 0 0 0 0 0 |
     {2} | -1 0  0 0  0  0  -1 0 0  0 0 0  0 0  0 0 0 0 0 0 0 |
     {2} | 0  0  0 0  0  -1 0  0 0  0 0 0  0 0  0 0 0 0 0 0 0 |
     {2} | 0  0  0 0  -1 0  0  0 -1 0 0 0  0 0  0 0 0 0 0 0 0 |
     {2} | 0  0  0 -1 0  0  0  0 0  0 0 0  0 -1 0 0 0 0 0 0 0 |
     {2} | 0  0  0 0  0  0  0  0 0  0 0 -1 0 0  0 0 0 0 0 0 0 |

o6 : Matrix
i7 : assert(f1 * f2 == 1)
i8 : assert(f2 * f1 == 1)
i9 : g1 = torSymmetry(2,M,N);

o9 : Matrix
i10 : g2 = torSymmetry(2,N,M);

o10 : Matrix
i11 : assert(g1 * g2 == 1)
i12 : assert(g2 * g1 == 1)
i13 : h1 = torSymmetry(3,M,N);

o13 : Matrix
i14 : h2 = torSymmetry(3,N,M);

o14 : Matrix
i15 : assert(h1 * h2 == 1)
i16 : assert(h2 * h1 == 1)

Although the Tor modules are isomorphic, they are presented with different numbers of generators. As a consequence, the matrices need not be square. For example, after pruning the modules, $f_1$ and $f_2$ are represented by the same matrix.

i17 : p1 = prune f1

o17 = {2} | -1 0  0  0  0  0  |
      {2} | 0  0  -1 0  0  0  |
      {2} | 0  -1 0  0  0  0  |
      {2} | 0  0  0  -1 0  0  |
      {2} | 0  0  0  0  0  -1 |
      {2} | 0  0  0  0  -1 0  |

o17 : Matrix
i18 : p2 = prune f2

o18 = {2} | -1 0  0  0  0  0  |
      {2} | 0  0  -1 0  0  0  |
      {2} | 0  -1 0  0  0  0  |
      {2} | 0  0  0  -1 0  0  |
      {2} | 0  0  0  0  0  -1 |
      {2} | 0  0  0  0  -1 0  |

o18 : Matrix
i19 : assert(p1 * p2 == 1)

See also

Ways to use this method: