If k==0 then the N=M. If k>0 then the syzygy module is computed from the resolution. If k<0 then the program returns the dual of the (n-k)-th syzygy of the dual of the k-th syzygy, where n is one more than Codepth if that opition is specified, and else n is the number of variables of ring M. Of course the resulting N is 0 if ring M is regular, and otherwise correct only if ring M is Gorenstein. In the Gorenstein case, syzygyModule(-k, syzygyModule(k, M)) -is the non-free part of the source of the MCM approximation of M.
i1 : R = setupRings(4,3); |
i2 : M = coker vars R_2; |
i3 : betti res M
0 1 2 3 4 5
o3 = total: 1 4 8 12 16 20
0: 1 4 6 4 1 .
1: . . 2 8 12 8
2: . . . . 3 12
o3 : BettiTally
|
i4 : betti syzygyModule(2,M)
0 1
o4 = total: 8 12
2: 6 4
3: 2 8
o4 : BettiTally
|
i5 : betti (N2 = syzygyModule(-2,M))
0 1
o5 = total: 12 8
-6: 8 2
-5: 4 6
o5 : BettiTally
|
i6 : betti res N2
0 1 2 3 4 5
o6 = total: 12 8 5 5 8 12
-6: 8 2 . . . .
-5: 4 6 4 1 . .
-4: . . . . . .
-3: . . . . . .
-2: . . 1 4 6 4
-1: . . . . 2 8
o6 : BettiTally
|
i7 : betti syzygyModule(-2,M,CoDepth=>2)
o7 = total:
o7 : BettiTally
|
ring M must be Gorenstein, and the program does not check
The object syzygyModule is a method function with options.