next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
MCMApproximations :: MCMApproximations

MCMApproximations -- Maximal Cohen-Macaulay Approximations and Complete Intersections

Description

Maximal Cohen-Macaulay approximations were introduced by Auslander and Buchweitz [The homological theory of maximal Cohen-Macaulay (MCM) approximations, Colloque en l’honneur de Pierre Samuel (Orsay, 1987) Soc. Math. France (N.S.)} No. 38, (1989), 5 - 37.] In the context of a local Gorenstein ring R, the theory simplifies a little and can be expressed as follows. Let M be an R-module.

1) There is a unique maximal Cohen-Macaulay R-module M’ and a short exact sequence 0→N’ →M’ →M →0 such that N has finite projective dimension; the module M, together with the surjection, is the MCM approximation of M.

2) Dually, there is a unique short exact sequence 0→M →N” →M” →0 such that N” has finite projective dimension and M” is a monomormphism M -> N to a module N of finite projective dimension, with cokernel a maximal Cohen-Macaulay module, the MCM co-approximation.

These sequences are easy to compute.Let d = 1+ depth R - depth M. Write M’0 for the d-th cosyzygy of the d-th syzygy module of M, and α: M’→M. The module M’ is called the essential MCM approximation of M. Note that M’ has no free summand Let B0 be a minimal free module mapping onto M/(image M’0), and lift the surjection ac to a map β: B0 →M. The map (α, β): M’0 ⊕B0 --> M is the MCM approximation, and N is its kernel.

The routine approximation M returns the pair (α, β).

Further, if M” is the (d+1)st cosyzygy of the d-th syzygy of M then there is a short exact sequence 0→M’ →F →M” →0 with F free. Pushing this sequence forward along the map α: M’ →M gives the coapproximation sequence 0→M →N”→M” →0.

The routine coApproximation M resurns the map M --> N”.

i1 : setRandomSeed 0

o1 = 0
i2 : T = setupRings(3,3)

                          ZZ              
                         ---[x , x , x ]  
       ZZ                101  0   1   2   
o2 = {---[x , x , x ], ------------------,
      101  0   1   2      3      3      3 
                       24x  - 36x  - 30x  
                          0      1      2 
     ------------------------------------------------------------------------
                    ZZ                          
                   ---[x , x , x ]              
                   101  0   1   2               
     ------------------------------------------,
         3      3      3       3      3      3  
     (24x  - 36x  - 30x , - 29x  + 19x  + 19x ) 
         0      1      2       0      1      2  
     ------------------------------------------------------------------------
                              ZZ
                             ---[x , x , x ]
                             101  0   1   2
     ---------------------------------------------------------------}
         3      3      3       3      3      3       3      3     3
     (24x  - 36x  - 30x , - 29x  + 19x  + 19x , - 10x  - 29x  - 8x )
         0      1      2       0      1      2       0      1     2

o2 : List
i3 : R = T_3

o3 = R

o3 : QuotientRing
i4 : M = coker random(R^2, R^{3: -2});
i5 : (MM,kk,p) = setupModules(T, M);
i6 : MM_1

o6 = cokernel | x_0^2-42x_0x_1-2x_1^2+x_0x_2+43x_1x_2+8x_2^2 45x_0x_1-30x_1^2-22x_0x_2-3x_1x_2+5x_2^2 2x_0x_1+11x_1^2-27x_0x_2-23x_1x_2+31x_2^2 x_2^3 0     x_0x_1x_2+21x_1^2x_2+48x_0x_2^2+15x_1x_2^2 -34x_1^2x_2-35x_0x_2^2-23x_1x_2^2 |
              | 29x_1^2-42x_0x_2-7x_1x_2-6x_2^2              x_0x_1-3x_1^2-23x_0x_2+38x_1x_2-8x_2^2   x_0^2+33x_1^2+23x_0x_2-13x_1x_2+x_2^2     0     x_2^3 21x_0x_2^2+28x_1x_2^2                      x_1^2x_2+7x_0x_2^2-32x_1x_2^2     |

        ZZ                                  /   ZZ             \
       ---[x , x , x ]                      |  ---[x , x , x ] |
       101  0   1   2                       |  101  0   1   2  |2
o6 : -------------------module, quotient of |------------------|
        3      3      3                     |   3      3      3|
     24x  - 36x  - 30x                      |24x  - 36x  - 30x |
        0      1      2                     \   0      1      2/
i7 : (a,b) = approximation MM_1 -- MM_1 is M as a module over the ring of codim 1

o7 = (| 40x_1^2-28x_0x_2+18x_1x_2+30x_2^2 
      | -39x_1^2+26x_0x_2-31x_1x_2+34x_2^2
     ------------------------------------------------------------------------
     12x_0x_1+33x_1^2-33x_0x_2-8x_1x_2+x_2^2
     26x_1^2+10x_0x_2-23x_1x_2-24x_2^2      
     ------------------------------------------------------------------------
     -40x_0x_1+14x_1^2+27x_0x_2+9x_1x_2+19x_2^2 -50x_0-6x_1-46x_2  -39x_2
     -35x_1^2-35x_0x_2+49x_1x_2+23x_2^2         -35x_0+33x_1+48x_2 42x_2 
     ------------------------------------------------------------------------
     5x_2   17x_1+14x_2 45x_0+24x_1+44x_2  25x_0-16x_1+20x_2  |, | 1 0 |)
     -15x_2 21x_1-44x_2 -19x_0-37x_1+31x_2 -44x_0-35x_1-40x_2 |  | 0 1 |

o7 : Sequence
i8 : M' = source a;
i9 : betti res pushForward(p_1_0,M') -- an MCM module

            0 1
o9 = total: 9 9
         1: 6 .
         2: 3 9

o9 : BettiTally
i10 : F = source b -- free module, thus also MCM

      /   ZZ             \
      |  ---[x , x , x ] |
      |  101  0   1   2  |2
o10 = |------------------|
      |   3      3      3|
      |24x  - 36x  - 30x |
      \   0      1      2/

         ZZ
        ---[x , x , x ]
        101  0   1   2
o10 : -------------------module, free
         3      3      3
      24x  - 36x  - 30x
         0      1      2
i11 : N = betti res ker map(MM_1,M'++F,matrix{{a,b}}) --module with pd G <\infty

              0 1
o11 = total: 16 9
          1:  6 .
          2:  6 9
          3:  4 .

o11 : BettiTally

See also

Author

Version

This documentation describes version 1.0 of MCMApproximations.

Source code

The source code from which this documentation is derived is in the file MCMApproximations.m2.

Exports

  • Functions and commands
    • approximation -- returns pair of components of the map from the MCM approximation
    • auslanderInvariant -- measures failure of surjectivity of the essential MCM approximation
    • coApproximation -- Maximal Cohen-Macaulay co-approximation of M
    • profondeur -- computes the profondeur with respect to an ideal
    • setupModules -- Creates a list of modules and maps over complete intersection for experiments
    • setupRings -- Sets up a complete intersection for experiments
    • socleDegrees -- lists the degrees of the socle generators
    • syzygyModule -- Produces the k-th syzygy module (k \in ZZ)
  • Symbols
    • Characteristic -- Option for setupRings(c,d,Characteristic=>q)
    • CoDepth -- Option for syzygyModule(-k,M,CoDepth => m)
    • Randomize -- Option for setupRings(c,d,Characteristic=>q, Randomize=>false)
    • Total -- option for approximation