next | previous | forward | backward | up | index | toc

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

Synopsis

• Usage:
T = exteriorTorModule(f,F)
T = exteriorTorModule(f,M,N)
• Inputs:
• f, , 1 x c, entries must be homotopic to 0 on F
• M, , S-module annihilated by ideal f
• N, , S-module annihilated by ideal f
• Outputs:
• T, , Tor^S(M,N) as a Module over an exterior algebra

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