The resolution of a module over a hypersurface ring (graded or local) is always periodic of period at most 2 (Eisenbud, "Homological Algebra Over A Complete Intersection", Trans. Am. Math. Soc. 260 (1980) 35--64), but the asymptotic structure of minimal resolutions over a complete intersection is a topic of active research.
Most of our routines for constructing resolutions over complete intersections work with a polynomial ring S and a complete intersection R = S/(ideal ff), where
is a 1-rowed matrix whose entries are (sufficiently general) generators of a complete intersection ideal, usually all of the same degree.
The new ideas implemented in this package come from the following sources:
"Minimal free resolutions over complete intersections" by David Eisenbud and Irena Peeva (2016). Lecture Notes in Mathematics, 2152. Springer, Cham, 2016. x+107 pp. ISBN: 978-3-319-26436-3; 978-3-319-26437-0), arXiv:1306.2615
"Layered Resolutions of Maximal Cohen-Macaulay modules" by David Eisenbud and Irena Peeva (preprint)
"Tor as a module over an exterior algebra" by David Eisenbud, Irena Peeva, and Frank-Olaf Schreyer (preprint).
The routines fall into several groups:
The construction of the matrix factorizations for high syzygies of a module N, introduced in the paper "Matrix Factorizations in Higher Codimension" by Eisenbud and Peeva. The routine “mfBound” determines which syzygy to take. The routine matrixFactorization constructs the higher matrix factorization of a module over R defined by Eisenbud and Peeva in the 2016 Springer Lecture Notes “Minimal Free Resolutions over Complete Intersections”. The ranks of the stack of matrices bp that are used in the construction of the matrix factorization, and the various matrices themselves, are obtained from the routines BRanks, ARanks, bMaps, dMaps, psiMaps, hMaps (the notation is explained in the Lecture Notes).
Here is an example of a matrix factorization in codimension 2:
i1 : setRandomSeed 0 o1 = 0 |
i2 : c = 2; |
i3 : S = ZZ/101[x_1..x_c, a_(1,1)..a_(c,c)]; |
i4 : X = matrix{{x_1..x_c}}; 1 2 o4 : Matrix S <--- S |
i5 : ff = X*map(source X, , genericMatrix(S,a_(1,1),c,c)); 1 2 o5 : Matrix S <--- S |
i6 : R = S/ideal ff; |
i7 : mbound = mfBound coker (R**X) o7 = 2 |
i8 : F = res(coker (R**X) , LengthLimit =>mbound+1); |
i9 : M = coker F.dd_(mbound+1); |
i10 : MF = matrixFactorization(ff,M) o10 = {{2} | a_(1,1) -a_(1,2) a_(2,1) -a_(2,2) |, {3} | x_1 a_(1,2) 0 {2} | x_2 x_1 0 0 | {3} | -x_2 a_(1,1) 0 {2} | 0 0 x_2 x_1 | {3} | 0 0 x_1 {3} | 0 0 -x_2 ----------------------------------------------------------------------- a_(2,2) 0 |, {2} | 0 0 1 |} a_(2,1) 0 | {2} | 0 1 0 | a_(1,2) a_(2,2) | {2} | 1 0 0 | a_(1,1) a_(2,1) | o10 : List |
i11 : netList BRanks MF +-+-+ o11 = |2|2| +-+-+ |1|2| +-+-+ |
i12 : netList ARanks MF +-+-+ o12 = |2|2| +-+-+ |3|4| +-+-+ |
i13 : netList bMaps MF +------------------------+ o13 = |{2} | a_(1,1) -a_(1,2) || |{2} | x_2 x_1 || +------------------------+ |{2} | x_2 x_1 | | +------------------------+ |
i14 : netList dMaps MF +-----------------------------------------+ o14 = |{2} | a_(1,1) -a_(1,2) | | |{2} | x_2 x_1 | | +-----------------------------------------+ |{2} | a_(1,1) -a_(1,2) a_(2,1) -a_(2,2) || |{2} | x_2 x_1 0 0 || |{2} | 0 0 x_2 x_1 || +-----------------------------------------+ |
i15 : netList psiMaps MF +------------------------+ o15 = |{2} | a_(2,1) -a_(2,2) || |{2} | 0 0 || +------------------------+ |
i16 : netList hMaps MF +----------------------------+ o16 = |{3} | x_1 a_(1,2) | | |{3} | -x_2 a_(1,1) | | +----------------------------+ |{3} | 0 a_(2,2) 0 || |{3} | 0 a_(2,1) 0 || |{3} | x_1 a_(1,2) a_(2,2) || |{3} | -x_2 a_(1,1) a_(2,1) || +----------------------------+ |
The routines infiniteBettiNumbers and finiteBettiNumbers compute the Betti numbers of M over R and over S from the BRanks. The minimal free resolution of M as a module over R/(f1..fs), where s=c-complexity M, is reconstructed (in a special form) from the matrix factorization MF by the routine makeFiniteResolution(ff,MF).
i17 : betti res M 0 1 2 3 4 5 6 7 o17 = total: 3 4 5 6 7 8 9 10 2: 3 4 5 6 7 8 9 10 o17 : BettiTally |
i18 : infiniteBettiNumbers(MF,7) o18 = {3, 4, 5, 6, 7, 8, 9, 10} o18 : List |
i19 : betti res pushForward(map(R,S),M) 0 1 2 o19 = total: 3 5 2 2: 3 4 . 3: . 1 2 o19 : BettiTally |
i20 : finiteBettiNumbers MF o20 = {3, 5, 2} o20 : List |
i21 : G = makeFiniteResolution (ff,MF) 3 5 2 o21 = S <-- S <-- S 0 1 2 o21 : ChainComplex |
i22 : G' = res(pushForward(map(R,S),M)) 3 5 2 o22 = S <-- S <-- S <-- 0 0 1 2 3 o22 : ChainComplex |
The group of routines ExtModule, evenExtModule, oddExtmodule, extModuleData (which call the routine Ext(M,N) of Avramov-Grayson) are useful for analyzing the module ExtR(M,k). TateResolution returns a specified part of the Tate resolution of a maximal Cohen-Macaulay module M first calling the routine cosysyzy.
The routines moduleAsExt and hfModuleAsExt give partial converse constructions (following Avramov-Jorgensen)
The routines twoMonomials and sumTwoMonomials provide some interesting examples.
The routine makeT constructs CI operators on a resolution over a complete intersection, while the routine makeHomotopies constructs a set of higher homotopies on the resolution of a module M for a sequence of elements in the annihilator of M(makeHomotopies1 constructs just the ordinare “first” homotopies).
The routine exteriorTorModule constructs the module TorS(M,k) as a module over the exterior algebra ∧(kn).
The routine S2 takes a graded module M and returns the map
Unless the complete intersection is homogeneous AND generated by elements of a single degree, it may not be possible to choose sufficiently general HOMOGENEOUS generators for some of our construction routines to work, even when the ideal of the complete intersection is homogeneous, so our examples in the routines for are primarily using complete intersections of equal degree. The theory takes place in the local case, however, where this is not a problem.
This documentation describes version 2.2 of CompleteIntersectionResolutions.
The source code from which this documentation is derived is in the file CompleteIntersectionResolutions.m2.