Macaulay2 » Documentation
Packages » Complexes :: Strategy for nonminimal free resolutions
next | previous | forward | backward | up | index | toc

Strategy for nonminimal free resolutions -- algorithm for computing nonminimal free resolutions

Synopsis

Description

This is the main the algorithm in the engine of Macaulay2 for computing nonminimal free resolutions of possibly inhomogeneous modules and ideals over a polynomial ring or exterior algebra defined over a finite field. For homogeneous ideals and modules over such rings, this variant generally computes a non-minimal resolution much faster than engine routines that return a minimal free resolution. In particular, this algorithm is used by minimalBetti for faster computation of Betti tables.

This first example computes part of the free resolution of the ground field over a inhomogeneous $E_8$ singularity.

i1 : kk = ZZ/32003;
i2 : R = kk[a..f];
i3 : I = ideal(a*b*c-d*e*f, a*b*f-c*d*e, a*b*d-c^3)

                                               3
o3 = ideal (a*b*c - d*e*f, - c*d*e + a*b*f, - c  + a*b*d)

o3 : Ideal of R
i4 : F = freeResolution(I, Strategy => Nonminimal)

      1      7      10      4
o4 = R  <-- R  <-- R   <-- R
                            
     0      1      2       3

o4 : Complex
i5 : dd^F

          1                                                                               7
o5 = 0 : R  <--------------------------------------------------------------------------- R  : 1
               | abc-def c3-abd cde-abf a2b2d-def3 abd2e-abf3 a2b2f-d2e2f d3e2f-def4 |

          7                                                                       10
     1 : R  <------------------------------------------------------------------- R   : 2
               {3} | -c2-f2 -de cf    -abd -d2e+f3 0   -abf 0  0        0    |
               {3} | ab     0   -de   0    0       0   0    0  0        0    |
               {3} | -cf    ab  c2+f2 f3   0       0   def  0  -d2ef+f4 0    |
               {5} | 1      0   0     c    0       -de 0    -f 0        0    |
               {5} | 0      0   -1    -f   c       ab  0    0  -f2      -def |
               {5} | 0      1   0     0    0       f2  c    d  0        0    |
               {6} | 0      0   0     0    -1      0   0    1  c        ab   |

          10                                      4
     2 : R   <---------------------------------- R  : 3
                {5} | de     0   0  0        |
                {5} | -c2-f2 0   0  -d2ef+f4 |
                {5} | ab     0   0  0        |
                {6} | 0      de  f  0        |
                {6} | 0      -ab 0  def      |
                {7} | 1      c   0  -f2      |
                {6} | c      -f2 -d 0        |
                {6} | 0      0   c  def      |
                {7} | 0      0   -1 -ab      |
                {8} | 0      -1  0  c        |

o5 : ComplexMap
i6 : betti F

            0 1  2 3
o6 = total: 1 7 10 4
         0: 1 .  . .
         1: . .  . .
         2: . 3  . .
         3: . .  3 .
         4: . 3  4 2
         5: . 1  2 1
         6: . .  1 1

o6 : BettiTally
i7 : minimalBetti I

            0 1 2 3
o7 = total: 1 3 3 1
         0: 1 . . .
         1: . . . .
         2: . 3 . .
         3: . . . .
         4: . . 3 .
         5: . . . .
         6: . . . 1

o7 : BettiTally
i8 : assert isWellDefined F
i9 : assert isQuasiIsomorphism(augmentationMap F)

We also present an inhomogeneous example over a polynomial ring.

i10 : I = ideal(a*b*c-d*e*f, a^2*b*f-c*d*e, a*b*d-c^2)

                             2                      2
o10 = ideal (a*b*c - d*e*f, a b*f - c*d*e, a*b*d - c )

o10 : Ideal of R
i11 : F = freeResolution(I, Strategy => Nonminimal)

       1      11      20      12      2
o11 = R  <-- R   <-- R   <-- R   <-- R
                                      
      0      1       2       3       4

o11 : Complex
i12 : dd^F

           1                                                                                                                    11
o12 = 0 : R  <---------------------------------------------------------------------------------------------------------------- R   : 1
                | abc-def abd-c2 cd2e-ac2f a2bf-cde d2ef-c3 bc2de-c2ef2 ac2f2-c4 adef2-c2de bc4d-c4f2 cdef3-bc4 c2ef5-b2c5 |

           11                                                                                                               20
      1 : R   <----------------------------------------------------------------------------------------------------------- R   : 2
                 {3} | -d -d2e+acf -af 0   0  c2   -cde -c2f -cf2 0        0    0   0   -c3d 0   c3  0   0   bc4  0    |
                 {3} | c  0        0   -af 0  -def 0    0    0    0        -ef2 0   0   0    0   0   0   0   0    0    |
                 {4} | 0  ab       0   1   -f 0    -ef  -bc  0    -acf2+c3 0    c   0   -c2f 0   0   -f3 0   0    0    |
                 {4} | 0  0        c   d   0  0    0    0    0    0        0    0   0   0    0   0   0   0   0    0    |
                 {4} | -1 -de      0   0   c  ab   0    0    0    0        0    -af 0   0    0   0   0   0   0    0    |
                 {5} | 0  0        0   0   0  0    a    d    0    0        1    0   0   0    -c2 0   0   -f3 c2f  0    |
                 {5} | 0  0        0   0   -1 0    0    0    b    d2e-acf  0    0   -de 0    0   0   -f2 0   -ef3 0    |
                 {5} | 0  c        -1  0   0  0    0    0    0    0        b    d   c2  0    0   -cf 0   0   0    0    |
                 {6} | 0  0        0   0   0  0    0    0    0    0        0    0   0   a    e   0   1   0   0    bc   |
                 {6} | 0  0        0   0   0  0    0    0    -1   0        0    0   0   0    0   a   d   bc  0    -cf2 |
                 {8} | 0  0        0   0   0  0    0    0    0    0        0    0   0   0    0   0   0   -1  a    d    |

           20                                                                       12
      2 : R   <------------------------------------------------------------------- R   : 3
                 {4} | af def 0  0        0  -cef2 0    0  0    -cef3 0    0   |
                 {6} | 0  -f  c  cf2      0  0     0    0  0    0     0    0   |
                 {5} | -d 0   0  0        0  0     0    0  0    0     0    0   |
                 {5} | c  0   0  0        0  0     0    0  0    0     0    0   |
                 {5} | 0  -ab de def2     0  -ef2  -acf 0  -af2 -ef3  0    0   |
                 {6} | 0  c   0  0        f  0     0    0  0    0     0    0   |
                 {6} | 0  0   -d 0        0  0     0    c2 0    f3    0    0   |
                 {6} | 0  0   a  c2       1  0     0    0  0    0     f3   c2f |
                 {6} | 0  -a  0  -d2e+acf 0  de    0    0  0    0     -cf2 0   |
                 {8} | 0  0   0  b        0  0     1    0  0    0     0    0   |
                 {6} | 0  0   0  0        -d -c2   0    0  0    -c2f  0    0   |
                 {6} | -1 0   0  0        b  0     -c2  0  -cf  0     0    0   |
                 {7} | 0  0   -1 0        0  b     d    0  0    0     0    f3  |
                 {7} | 0  0   0  0        0  0     0    -e -1   0     0    -bc |
                 {7} | 0  0   0  d        0  -1    0    a  0    0     0    0   |
                 {7} | 0  -1  0  cf       0  0     0    0  -d   -bc   0    cf2 |
                 {7} | 0  0   0  -de      0  e     0    0  a    0     -bc  0   |
                 {8} | 0  0   0  0        0  0     0    0  0    a     d    0   |
                 {9} | 0  0   0  0        0  0     0    0  0    1     0    -d  |
                 {9} | 0  0   0  0        0  0     0    0  0    0     1    a   |

           12                         2
      3 : R   <--------------------- R  : 4
                 {6}  | 0   0    |
                 {7}  | -cf -cf2 |
                 {7}  | 0   -f3  |
                 {9}  | -1  0    |
                 {7}  | c2  c2f  |
                 {8}  | -d  0    |
                 {8}  | b   0    |
                 {8}  | 0   0    |
                 {8}  | 0   bc   |
                 {9}  | 0   -d   |
                 {9}  | 0   a    |
                 {10} | 0   -1   |

o12 : ComplexMap
i13 : assert isWellDefined F
i14 : assert isQuasiIsomorphism augmentationMap F
i15 : minimize F

       1      3      3      1
o15 = R  <-- R  <-- R  <-- R
                            
      0      1      2      3

o15 : Complex
i16 : freeResolution I

       1      6      9      4
o16 = R  <-- R  <-- R  <-- R
                            
      0      1      2      3

o16 : Complex

We also present an example over an exterior algebra.

i17 : E = kk[a..d, SkewCommutative => true]

o17 = E

o17 : PolynomialRing, 4 skew commutative variable(s)
i18 : I = ideal(a*b-c*d, a*b*c*d)

o18 = ideal (a*b - c*d, a*b*c*d)

o18 : Ideal of E
i19 : F = freeResolution(I, Strategy => Nonminimal, LengthLimit => 4)

       1      3      10      23      44
o19 = E  <-- E  <-- E   <-- E   <-- E
                                     
      0      1      2       3       4

o19 : Complex
i20 : dd^F

           1                         3
o20 = 0 : E  <--------------------- E  : 1
                | ab-cd acd bcd |

           3                                      10
      1 : E  <---------------------------------- E   : 2
                {2} | a b 0 cd 0 0 -cd 0 0 0 |
                {3} | 1 0 a b  c d 0   0 0 0 |
                {3} | 0 1 0 0  0 0 a   b c d |

           10                                                                      23
      2 : E   <------------------------------------------------------------------ E   : 3
                 {3} | a  b  0  0 -cd 0   0 0 0 0 0 0 0 cd 0  0 0 0 0 0 0 0 0 |
                 {3} | 0  a  b  0 0   -cd 0 0 0 0 0 0 0 0  cd 0 0 0 0 0 0 0 0 |
                 {4} | -1 0  0  a b   0   c 0 0 d 0 0 0 0  0  0 0 0 0 0 0 0 0 |
                 {4} | 0  -1 0  0 a   b   0 c 0 0 d 0 0 0  0  0 0 0 0 0 0 0 0 |
                 {4} | 0  0  0  0 -d  0   a b c 0 0 d 0 d  0  0 0 0 0 0 0 0 0 |
                 {4} | 0  0  0  0 0   0   0 0 0 a b c d 0  0  0 0 0 0 0 0 0 0 |
                 {4} | 0  -1 0  0 0   0   0 0 0 0 0 0 0 a  b  0 c 0 0 d 0 0 0 |
                 {4} | 0  0  -1 0 0   0   0 0 0 0 0 0 0 0  a  b 0 c 0 0 d 0 0 |
                 {4} | 0  0  0  0 0   -d  0 0 0 0 0 0 0 0  d  0 a b c 0 0 d 0 |
                 {4} | 0  0  0  0 0   0   0 0 0 0 0 0 0 0  0  0 0 0 0 a b c d |

           23                                                                                                                  44
      3 : E   <-------------------------------------------------------------------------------------------------------------- E   : 4
                 {4} | a b 0 0 0 cd 0  0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 -cd 0   0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {4} | 0 a b 0 0 0  cd 0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   -cd 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {4} | 0 0 a b 0 0  0  cd 0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   0   -cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {5} | 1 0 0 0 a b  0  0  c 0  0  0 0 0 d 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 |
                 {5} | 0 1 0 0 0 a  b  0  0 c  0  0 0 0 0 d 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 |
                 {5} | 0 0 1 0 0 0  a  b  0 0  c  0 0 0 0 0 d 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 |
                 {5} | 0 0 0 0 0 -d 0  0  a b  0  c 0 0 0 0 0 d 0 0 0 0 0 0 d   0   0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {5} | 0 0 0 0 0 0  -d 0  0 a  b  0 c 0 0 0 0 0 d 0 0 0 0 0 0   d   0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {5} | 0 0 0 0 0 0  0  0  0 -d 0  a b c 0 0 0 0 0 d 0 0 0 0 0   0   0   0 d 0 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  0 0 0 a b 0 c 0 0 d 0 0 0 0   0   0   0 0 0 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  0 0 0 0 a b 0 c 0 0 d 0 0 0   0   0   0 0 0 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  0 0 0 0 0 0 a b c 0 0 d 0 0   0   0   0 0 0 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  0 0 0 0 0 0 0 0 0 a b c d 0   0   0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
                 {5} | 0 1 0 0 0 0  0  0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 a   b   0   0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 |
                 {5} | 0 0 1 0 0 0  0  0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   a   b   0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 |
                 {5} | 0 0 0 1 0 0  0  0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   0   a   b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 |
                 {5} | 0 0 0 0 0 0  -d 0  0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   d   0   0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 0 |
                 {5} | 0 0 0 0 0 0  0  -d 0 0  0  0 0 0 0 0 0 0 0 0 0 0 0 0 0   0   d   0 0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 |
                 {5} | 0 0 0 0 0 0  0  0  0 0  -d 0 0 0 0 0 0 0 0 0 0 0 0 0 0   0   0   0 0 d 0 a b c 0 0 0 0 0 d 0 0 0 0 |
                 {5} | 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 a b 0 c 0 0 d 0 0 0 |
                 {5} | 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 a b 0 c 0 0 d 0 0 |
                 {5} | 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 a b c 0 0 d 0 |
                 {5} | 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 a b c d |

o20 : ComplexMap
i21 : betti F

             0 1  2  3  4
o21 = total: 1 3 10 23 44
          0: 1 .  .  .  .
          1: . 1  2  3  4
          2: . 2  8 20 40

o21 : BettiTally
i22 : minimalBetti I

             0 1 2  3  4
o22 = total: 1 1 5 16 35
          0: 1 . .  .  .
          1: . 1 .  .  .
          2: . . 5 16 35

o22 : BettiTally
i23 : assert isWellDefined F
i24 : assert isQuasiIsomorphism(augmentationMap F, Concentration => (0,3))

This strategy implements an algorithm of Frank Schreyer. It first computes lead terms of all of the syzygy modules of the ideal or module, and then determines each syzygy using a linear algebra approach together with a number of optimizations.

See also