next | previous | forward | backward | up | index | toc

# syzygyModule -- Produces the k-th syzygy module (k \in ZZ)

## Synopsis

• Usage:
N = syzygyModule(k,M)
• Inputs:
• Optional inputs:
• CoDepth => ..., default value -1
• Outputs:
• N, ,

## Description

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 option 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

## Caveat

ring M must be Gorenstein, and the program does not check