next | previous | forward | backward | up | top | index | toc | Macaulay2 website
CompleteIntersectionResolutions :: exteriorTorModule

exteriorTorModule -- Tor as a module over an exterior algebra or bigraded algebra

Synopsis

Description

If M,N are S-modules annihilated by the elements of the matrix ff = (f_1..f_c), and k is the residue field of S, then the script exteriorTorModule(f,M) returns Tor^S(M, k) as a module over an exterior algebra k<e_1,...,e_c>, where the e_i have degree 1, while exteriorTorModule(f,M,N) returns Tor^S(M,N) as a module over a bigraded ring SE = S<e_1,..,e_c>, where the e_i have degrees {d_i,1}, where d_i is the degree of f_i. The module structure, in either case, is defined by the homotopies for the f_i on the resolution of M, computed by the script makeHomotopies1.

The scripts call makeModule to compute a (non-minimal) presentation of this module.

From the description by matrix factorizations and the paper "Tor as a module over an exterior algebra" of Eisenbud, Peeva and Schreyer it follows that when M is a high syzygy and F is its resolution, then the presentation of Tor(M,S^1/mm) always has generators in degrees 0,1, corresponding to the targets and sources of the stack of maps B(i), and that the resolution is componentwise linear in a suitable sense. In the following example, these facts are verified. The Tor module does NOT split into the direct sum of the submodules generated in degrees 0 and 1, however.

i1 : kk = ZZ/101

o1 = kk

o1 : QuotientRing
i2 : S = kk[a,b,c]

o2 = S

o2 : PolynomialRing
i3 : f = matrix"a4,b4,c4"

o3 = | a4 b4 c4 |

             1       3
o3 : Matrix S  <--- S
i4 : R = S/ideal f

o4 = R

o4 : QuotientRing
i5 : p = map(R,S)

o5 = map (R, S, {a, b, c})

o5 : RingMap R <--- S
i6 : M = coker map(R^2, R^{3:-1}, {{a,b,c},{b,c,a}})

o6 = cokernel | a b c |
              | b c a |

                            2
o6 : R-module, quotient of R
i7 : betti (FF =res( M, LengthLimit =>6))

            0 1 2 3 4  5  6
o7 = total: 2 3 4 6 9 13 18
         0: 2 3 . . .  .  .
         1: . . 1 . .  .  .
         2: . . 3 3 .  .  .
         3: . . . 3 3  .  .
         4: . . . . 3  3  .
         5: . . . . 3  9  6
         6: . . . . .  .  3
         7: . . . . .  1  9

o7 : BettiTally
i8 : MS = prune pushForward(p, coker FF.dd_6);
i9 : T = exteriorTorModule(f,MS);
i10 : betti T

              0   1
o10 = total: 84 252
          0: 13  39
          1: 33  99
          2: 29  87
          3:  9  27

o10 : BettiTally
i11 : betti res (PT = prune T)

              0  1  2   3   4
o11 = total: 31 55 87 127 175
          0: 13 24 39  58  81
          1: 18 31 48  69  94

o11 : BettiTally
i12 : ann PT

o12 = ideal(e e e )
             0 1 2

o12 : Ideal of kk[e ..e ]
                   0   2
i13 : PT0 = image (inducedMap(PT,cover PT)* ((cover PT)_{0..12}));
i14 : PT1 = image (inducedMap(PT,cover PT)* ((cover PT)_{13..30}));
i15 : betti res prune PT0

              0  1  2  3  4
o15 = total: 13 24 39 58 81
          0: 13 24 39 58 81

o15 : BettiTally
i16 : betti res prune PT1

              0  1  2  3  4
o16 = total: 18 28 39 51 64
          1: 18 28 39 51 64

o16 : BettiTally
i17 : betti res prune PT

              0  1  2   3   4
o17 = total: 31 55 87 127 175
          0: 13 24 39  58  81
          1: 18 31 48  69  94

o17 : BettiTally

See also

Ways to use exteriorTorModule :

For the programmer

The object exteriorTorModule is a method function.