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 somes 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.