The resolutions computed are those described in the paper "Layered Resolutions of Cohen-Macaulay modules" by Eisenbud and Peeva. They are both minimal when M is a suffiently high syzygy of a module N. If the option Verbose=>true is set, then (in the case of the resolution over S) the ranks of the modules B_s in the resolution are output.
Here is an example computing 5 terms of an infinite resolution:
i1 : S = ZZ/101[a,b,c]
o1 = S
o1 : PolynomialRing
|
i2 : ff = matrix"a3, b3, c3"
o2 = | a3 b3 c3 |
1 3
o2 : Matrix S <-- S
|
i3 : R = S/ideal ff
o3 = R
o3 : QuotientRing
|
i4 : M = syzygyModule(2,coker vars R)
o4 = cokernel {2} | a 0 -c2 0 b2 0 0 0 0 0 |
{2} | -b 0 0 -c2 0 0 0 a2 0 0 |
{2} | c 0 0 0 0 0 -b2 0 a2 0 |
{3} | 0 c b a 0 0 0 0 0 0 |
{3} | 0 0 0 0 c b a 0 0 0 |
{3} | 0 0 0 0 0 0 0 c b a |
6
o4 : R-module, quotient of R
|
i5 : (FF, aug) = layeredResolution(ff,M,5)
0 1 2 3 4 5
total: 4 4 4 4 4 4
2: 3 1 . . . .
3: 1 3 3 1 . .
4: . . 1 3 3 1
5: . . . . 1 3
0 1 2 3 4 5
total: 5 7 9 11 13 15
2: 3 1 . . . .
3: 2 6 6 2 . .
4: . . 3 9 9 3
5: . . . . 4 12
0 1 2 3 4 5
total: 6 10 15 21 28 36
2: 3 1 . . . .
3: 3 9 9 3 . .
4: . . 6 18 18 6
5: . . . . 10 30
6 10 15 21 28 36
o5 = (R <-- R <-- R <-- R <-- R <-- R , {2} | 0 0 0 1 0 0 |)
{2} | 0 -1 0 0 0 0 |
0 1 2 3 4 5 {2} | 0 0 -1 0 0 0 |
{3} | 0 0 0 0 0 1 |
{3} | 0 0 0 0 1 0 |
{3} | 1 0 0 0 0 0 |
o5 : Sequence
|
i6 : betti FF
0 1 2 3 4 5
o6 = total: 6 10 15 21 28 36
2: 3 1 . . . .
3: 3 9 9 3 . .
4: . . 6 18 18 6
5: . . . . 10 30
o6 : BettiTally
|
i7 : betti res(M, LengthLimit=>5)
0 1 2 3 4 5
o7 = total: 6 10 15 21 28 36
2: 3 1 . . . .
3: 3 9 9 3 . .
4: . . 6 18 18 6
5: . . . . 10 30
o7 : BettiTally
|
i8 : C = chainComplex flatten {{aug} |apply(4, i-> FF.dd_(i+1))}
6 10 15 21 28
o8 = M <-- R <-- R <-- R <-- R <-- R
0 1 2 3 4 5
o8 : ChainComplex
|
i9 : apply(4, i ->FF.dd_(i+1))
o9 = {{3} | 0 a -c -b 0 0 0 0 0 0 |, {3} | 0 0 -c2 0 0 0 0 b2 0
{2} | b 0 a2 0 0 0 0 0 0 c2 | {4} | 0 0 0 0 0 0 0 0 0
{2} | -c 0 0 a2 0 0 b2 0 0 0 | {4} | -c2 0 0 0 0 0 0 0 0
{2} | a 0 0 0 b2 0 0 0 c2 0 | {4} | 0 0 0 0 0 0 -b2 0 0
{3} | 0 0 0 0 c b a 0 0 0 | {4} | 0 0 0 0 c2 0 0 -a 0
{3} | 0 0 0 0 0 0 0 c -b a | {4} | 0 0 0 0 0 0 0 0 -a
{4} | 0 0 0 0 0 0 a2 c b
{4} | 0 -a 0 b 0 c2 0 0 0
{4} | 0 0 a c -b2 0 0 0 0
{4} | a2 c b 0 0 0 0 0 0
------------------------------------------------------------------------
0 0 0 0 0 a2 |, {6} | 0 a -c -b 0 0 0 0 0 0 0 0 0 0 0 0
0 0 a2 c b 0 | {5} | b 0 a2 0 0 0 0 0 0 c2 0 0 0 0 0 0
0 0 0 a 0 -b | {5} | -c 0 0 a2 0 0 b2 0 0 0 0 0 0 0 0 0
0 0 0 0 a c | {5} | a 0 0 0 b2 0 0 0 c2 0 0 0 0 0 0 0
b 0 0 0 0 0 | {6} | 0 0 0 0 c b a 0 0 0 0 0 0 0 0 0
-c b2 0 0 0 0 | {6} | 0 0 0 0 0 0 0 c -b a 0 0 0 0 0 0
0 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 a -c -b 0 0
0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 c2 0 0 0 b 0 a2 0 0 0
0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 -c 0 0 a2 0 0
0 0 0 0 0 0 | {5} | 0 0 0 0 0 -c2 0 0 0 0 a 0 0 0 b2 0
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c b
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{5} | 0 c2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{5} | 0 0 0 0 0 0 0 0 0 0 0 b2 0 0 0 0
{5} | 0 0 0 c2 0 0 0 0 0 0 0 0 -b2 0 0 0
------------------------------------------------------------------------
0 0 0 0 0 |, {6} | 0 0 -c2 0 0 0 0 b2 0 0 0 0 0 0 a2
0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 0 a2 c b 0
0 0 0 0 0 | {7} | -c2 0 0 0 0 0 0 0 0 0 0 0 a 0 -b
0 0 0 0 0 | {7} | 0 0 0 0 0 0 -b2 0 0 0 0 0 0 a c
0 0 0 0 0 | {7} | 0 0 0 0 c2 0 0 -a 0 b 0 0 0 0 0
0 0 0 0 0 | {7} | 0 0 0 0 0 0 0 0 -a -c b2 0 0 0 0
0 0 0 0 0 | {7} | 0 0 0 0 0 0 a2 c b 0 0 0 0 0 0
0 0 0 0 0 | {7} | 0 -a 0 b 0 c2 0 0 0 0 0 0 0 0 0
b2 0 0 0 0 | {7} | 0 0 a c -b2 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 | {7} | a2 c b 0 0 0 0 0 0 0 0 0 0 0 0
a 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 -c2 0 0 0 0 0 0
0 0 a -c -b | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 b 0 a2 0 | {7} | 0 0 0 0 0 0 -c2 0 0 0 0 0 0 0 0
0 -c 0 0 a2 | {7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 a 0 0 0 | {7} | 0 0 0 0 0 0 0 0 0 0 c2 0 0 0 0
{7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 -c2 0
{7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
{7} | 0 0 0 0 0 0 0 0 0 0 0 -c2 0 0 0
{7} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
------------------------------------------------------------------------
0 0 0 0 0 0 0 0 0 0 0 0 0 |}
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 b2 0 0 0 0 0 0 a2 0 0 0 0 |
0 0 0 0 0 a2 c b 0 0 0 0 0 |
0 0 0 0 0 0 a 0 -b 0 0 0 0 |
-b2 0 0 0 0 0 0 a c 0 0 0 0 |
0 -a 0 b 0 0 0 0 0 0 0 0 0 |
0 0 -a -c b2 0 0 0 0 0 0 0 0 |
a2 c b 0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 b2 0 0 0 0 0 a2 |
0 0 0 0 0 0 0 0 0 a2 c b 0 |
0 0 0 0 0 0 0 0 0 0 a 0 -b |
0 0 0 0 0 -b2 0 0 0 0 0 a c |
o9 : List
|
i10 : apply(5, j-> prune HH_j C == 0)
o10 = {true, true, true, true, true}
o10 : List
|
i11 : MS = pushForward(map(R,S), M);
|
i12 : (GG, aug) = layeredResolution(ff,MS)
6 13 10 3
o12 = (S <-- S <-- S <-- S , {2} | 0 0 0 1 0 0 |)
{2} | 0 -1 0 0 0 0 |
0 1 2 3 {2} | 0 0 -1 0 0 0 |
{3} | 0 0 0 0 0 1 |
{3} | 0 0 0 0 1 0 |
{3} | 1 0 0 0 0 0 |
o12 : Sequence
|
i13 : (GG, aug) = layeredResolution(ff,MS, Verbose =>true)
{3, 1} in codimension 3
{3, 1} in codimension 2
6 13 10 3
o13 = (S <-- S <-- S <-- S , {2} | 0 0 0 1 0 0 |)
{2} | 0 -1 0 0 0 0 |
0 1 2 3 {2} | 0 0 -1 0 0 0 |
{3} | 0 0 0 0 0 1 |
{3} | 0 0 0 0 1 0 |
{3} | 1 0 0 0 0 0 |
o13 : Sequence
|
i14 : betti GG
0 1 2 3
o14 = total: 6 13 10 3
2: 3 1 . .
3: 3 9 . .
4: . . . .
5: . 3 9 .
6: . . . .
7: . . 1 3
o14 : BettiTally
|
i15 : betti res MS
0 1 2 3
o15 = total: 6 13 10 3
2: 3 1 . .
3: 3 9 . .
4: . . . .
5: . 3 9 .
6: . . . .
7: . . 1 3
o15 : BettiTally
|
i16 : C = chainComplex flatten {{aug} |apply(length GG -1, i-> GG.dd_(i+1))}
6 13 10
o16 = MS <-- S <-- S <-- S
0 1 2 3
o16 : ChainComplex
|
i17 : apply(length GG +1 , j-> prune HH_j C == 0)
o17 = {true, true, true, false}
o17 : List
|