If S is a ring, R = S/(f1..fc) a complete intersection, A the lift to S of an R-free resolution of a module M, and L the Koszul complex resolving R over S, the script constructs the "higher ci operators" on A of Eisenbud-Peeva-Schreyer and uses them to construct a -usually nonminimal- S-free resolution of M. The resulting resolution has the structure of a module over the exterior algebra.
This construction is in some sense dual to the Shamash construction of an R-free resolution from an S-free resolution, that uses higher homotopies and yields a resolution that is a module over the divided power algebra.
The same procedure would work starting with an algebra resolution of any S-algebra R, given a description of the multiplication on the algebra resolution.
i1 : needsPackage "CompleteIntersectionResolutions" o1 = CompleteIntersectionResolutions o1 : Package |
i2 : S = ZZ/101[a,b,c]; |
i3 : ff = matrix"a4,b4,c4"; 1 3 o3 : Matrix S <--- S |
i4 : N = coker matrix"a,b,c;b,c,a"; |
i5 : R = S/ideal ff; |
i6 : M = highSyzygy (R**N); |
i7 : AA = res(M, LengthLimit => 5); |
i8 : Alist = apply(length AA, i-> lift(AA.dd_(i+1), S)); |
i9 : A = chainComplex Alist; |
i10 : L = trueKoszul ff; |
i11 : AL = ciOperatorResolution(A,L) 13 57 117 170 222 282 o11 = S <-- S <-- S <-- S <-- S <-- S 0 1 2 3 4 5 o11 : ChainComplex |
i12 : G = res pushForward(map(R,S),M) 13 33 29 9 o12 = S <-- S <-- S <-- S <-- 0 0 1 2 3 4 o12 : ChainComplex |
i13 : betti AL 0 1 2 3 4 5 o13 = total: 13 57 117 170 222 282 9: 3 . . . . . 10: 9 6 . . . . 11: . 3 3 . . . 12: 1 18 18 10 . . 13: . 27 18 3 3 . 14: . . 12 27 30 15 15: . 3 36 54 30 3 16: . . 27 18 15 39 17: . . . 18 63 90 18: . . 3 30 54 30 19: . . . 9 6 27 20: . . . . 12 57 21: . . . 1 9 18 22: . . . . . . 23: . . . . . 3 o13 : BettiTally |
i14 : betti G 0 1 2 3 o14 = 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 o14 : BettiTally |
The object ciOperatorResolution is a method function.