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
|
The object exteriorTorModule is a method function.