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.