Suppose that F is a minimal complex over a ring S with residue field k, and that multiplication by the elements of f are null-homotopic on F. This script calls makeHomotopies1 to compute homotopies for multiplication by the fi on F. This makes F a homotopy associative, homotopy commutative graded module over the Koszul complex of f. Thus F**k is a module over Λ(klength f).
The script calls makeModule to compute a (non-minimal) presentation of this module. From the description by matrix factorizations we see that when M is a high syzygy and F is its resolution, then the presentation of Tor(M,S1/mm) always has generators in degrees 0,1, corresponding to the targets and sources of the stack of maps B(i). We CONJECTURE that the relations are all in degrees 1,2, 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 : betti(F = res MS) 0 1 2 3 o9 = total: 13 33 29 9 9: 3 . . . 10: 9 6 . . 11: . 3 . . 12: 1 15 . . 13: . 9 8 . 14: . . 6 . 15: . . 12 . 16: . . 3 3 17: . . . 3 18: . . . 3 o9 : BettiTally |
i10 : T = exteriorTorModule(f,F); 0 1 2 3 4 5 6 7 8 9 10 total: 231 175 127 87 55 31 16 13 25 49 81 -6: 123 94 69 48 31 18 9 4 3 3 3 -5: 108 81 58 39 24 13 6 3 . . . -4: . . . . . . . . 7 18 33 -3: . . . . . . 1 6 15 28 45 |
i11 : betti T 0 1 o11 = total: 84 252 0: 13 39 1: 33 99 2: 29 87 3: 9 27 o11 : BettiTally |
i12 : betti res (PT = prune T) 0 1 2 3 4 o12 = total: 31 55 87 127 175 0: 13 24 39 58 81 1: 18 31 48 69 94 o12 : BettiTally |
i13 : ann PT o13 = ideal(e e e ) 0 1 2 o13 : Ideal of kk[e , e , e ] 0 1 2 |
i14 : PT0 = image (inducedMap(PT,cover PT)* ((cover PT)_{0..12})); |
i15 : PT1 = image (inducedMap(PT,cover PT)* ((cover PT)_{13..30})); |
i16 : betti res prune PT0 0 1 2 3 4 o16 = total: 13 24 39 58 81 0: 13 24 39 58 81 o16 : BettiTally |
i17 : betti res prune PT1 0 1 2 3 4 o17 = total: 18 28 39 51 64 1: 18 28 39 51 64 o17 : BettiTally |
i18 : betti res prune PT 0 1 2 3 4 o18 = total: 31 55 87 127 175 0: 13 24 39 58 81 1: 18 31 48 69 94 o18 : BettiTally |