next | previous | forward | backward | up | top | index | toc | Macaulay2 website
CompleteIntersectionResolutions :: makeFiniteResolution

makeFiniteResolution -- finite resolution of a matrix factorization module M

Synopsis

Description

Suppose that f_1..f_c is a homogeneous regular sequence of forms of the same degree in a polynomial ring S and M is a high syzygy module over S/(f_1,..,f_c) = R(c), and mf = (d,h) is the output of matrixFactorization(M,ff). If the complexity of M is c', then M has a finite free resolution over R = S/(f_1,..,f_{(c-c')}) (and, more generally, has complexity c-d over S/(f_1,..,f_{(c-d)}) for d>=c').

The complex A is the minimal finite free resolution of M over A, constructed as an iterated Koszul extension, made from the maps in bMaps mf and psiMaps mf, as described in Eisenbud-Peeva.

i1 : setRandomSeed 0

o1 = 0
i2 : S = ZZ/101[a,b,c];
i3 : ff = matrix"a3,b3";

             1       2
o3 : Matrix S  <--- S
i4 : R = S/ideal ff;
i5 : M = highSyzygy (R^1/ideal vars R);
i6 : mf = matrixFactorization (ff, M)

o6 = {{4} | -c b 0  a2 0  0  0  0  0   |, {5} | 0 a2 0  -b 0  0   0   0 0  0
      {4} | a  0 b  0  0  0  0  0  0   |  {5} | 0 0  a2 -c b2 0   0   0 0  0
      {4} | 0  a c  0  0  0  0  0  -b2 |  {5} | 0 0  0  a  0  b2  0   0 0  0
      {3} | 0  0 a2 0  0  b2 0  0  0   |  {6} | a c  -b 0  0  0   0   0 0  0
      {4} | 0  0 0  0  b  -a 0  0  0   |  {5} | 0 0  0  0  0  0   0   a b2 0
      {4} | 0  0 0  0  -c 0  a  b2 0   |  {5} | 0 0  0  0  0  -a2 0   b 0  0
      {4} | 0  0 0  0  0  c  -b 0  a2  |  {5} | 0 0  0  0  0  0   -a2 c 0  0
                                          {6} | 0 0  0  0  0  0   0   0 c  b
                                          {6} | 0 0  0  0  a  c   -b  0 0  0
     ------------------------------------------------------------------------
     0   |, {3} | 0 0 0  1 0 0 0 |}
     0   |  {4} | 0 0 0  0 1 0 0 |
     0   |  {4} | 0 0 0  0 0 1 0 |
     0   |  {4} | 0 0 0  0 0 0 1 |
     0   |  {4} | 0 1 0  0 0 0 0 |
     0   |  {4} | 0 0 -1 0 0 0 0 |
     -b2 |  {4} | 1 0 0  0 0 0 0 |
     a   |
     0   |

o6 : List
i7 : G = makeFiniteResolution(ff,mf)

      7      12      5
o7 = S  <-- S   <-- S
                     
     0      1       2

o7 : ChainComplex
i8 : F = res pushForward(map(R,S),M)

      7      12      5
o8 = S  <-- S   <-- S  <-- 0
                            
     0      1       2      3

o8 : ChainComplex
i9 : G.dd_1

o9 = {4} | -c b 0  a2 0  0  0  0  0   0   0   0   |
     {4} | a  0 b  0  0  0  0  0  0   0   0   0   |
     {4} | 0  a c  0  0  0  0  0  -b2 0   0   0   |
     {3} | 0  0 a2 0  0  b2 0  0  0   0   0   0   |
     {4} | 0  0 0  0  b  -a 0  0  0   -a3 0   0   |
     {4} | 0  0 0  0  -c 0  a  b2 0   0   -a3 0   |
     {4} | 0  0 0  0  0  c  -b 0  a2  0   0   -a3 |

             7       12
o9 : Matrix S  <--- S
i10 : F.dd_1

o10 = {3} | a2 b2 0  0  0  0  0  0  0  0  0  0  |
      {4} | 0  -a 0  0  0  b  0  0  0  0  0  0  |
      {4} | 0  0  a  0  0  -c 0  0  b2 0  0  0  |
      {4} | 0  c  -b 0  0  0  a2 0  0  0  0  0  |
      {4} | b  0  0  a  0  0  0  0  0  b3 0  0  |
      {4} | -c 0  0  0  a  0  b2 0  0  0  b3 0  |
      {4} | 0  0  0  -c -b 0  0  a2 0  0  0  b3 |

              7       12
o10 : Matrix S  <--- S
i11 : G.dd_2

o11 = {5} | 0   -b3  0   0   0     |
      {5} | 0   -b2c 0   0   -a2b2 |
      {5} | 0   ab2  0   0   0     |
      {6} | 0   0    0   0   b3    |
      {5} | -a3 0    0   0   0     |
      {5} | 0   -a3  0   0   0     |
      {5} | 0   0    -a3 0   0     |
      {6} | 0   0    0   -a3 0     |
      {6} | 0   0    0   0   -a3   |
      {7} | -b  a    0   0   0     |
      {7} | c   0    -a  -b2 0     |
      {7} | 0   -c   b   0   -a2   |

              12       5
o11 : Matrix S   <--- S
i12 : F.dd_2

o12 = {5} | b3   0   0   0     0   |
      {5} | -a2b 0   0   0     0   |
      {5} | -a2c 0   0   -a2b2 0   |
      {5} | 0    -b3 0   0     0   |
      {5} | 0    0   -b3 0     0   |
      {5} | -a3  0   0   0     0   |
      {6} | 0    0   0   -b3   0   |
      {6} | 0    0   0   0     -b3 |
      {6} | 0    0   0   a3    0   |
      {7} | -b   a   0   0     0   |
      {7} | c    0   a   b2    0   |
      {7} | 0    -c  -b  0     a2  |

              12       5
o12 : Matrix S   <--- S

If the complexity of M is not maximal, then the finite resolution takes place over an intermediate complete intersection:

i13 : S = ZZ/101[a,b,c,d]

o13 = S

o13 : PolynomialRing
i14 : ff1 = matrix"a3,b3,c3,d3"

o14 = | a3 b3 c3 d3 |

              1       4
o14 : Matrix S  <--- S
i15 : ff =ff1*random(source ff1, source ff1)

o15 = | 24a3-36b3-30c3-29d3 19a3+19b3-10c3-29d3 -8a3-22b3-29c3-24d3
      -----------------------------------------------------------------------
      -38a3-16b3+39c3+21d3 |

              1       4
o15 : Matrix S  <--- S
i16 : R = S/ideal ff

o16 = R

o16 : QuotientRing
i17 : M = highSyzygy (R^1/ideal"a2b2")

o17 = cokernel {6} | b2 0 -a2 0 |
               {7} | a  b 0   0 |
               {7} | 0  0 b   a |

                             3
o17 : R-module, quotient of R
i18 : complexity M

o18 = 2
i19 : mf = matrixFactorization (ff, M)

o19 = {{7} | -a -36b 0 a |, {8} | 35a2  48b  0     -33b 0     |, {6} | 0   36
       {6} | b2 a2   0 0 |  {8} | -35b2 -35a 0     0    0     |  {7} | -36 0 
       {7} | 0  0    b a |  {8} | 0     0    33b2  33a  -33b2 |  {7} | 1   0 
                            {8} | 0     0    -43a2 -33b 0     |
      -----------------------------------------------------------------------
      0  |}
      36 |
      0  |

o19 : List
i20 : complexity mf

o20 = 2
i21 : BRanks mf

o21 = {{2, 2}, {1, 2}}

o21 : List
i22 : G = makeFiniteResolution(ff,mf);
i23 : codim ring G

o23 = 2
i24 : R1 = ring G

o24 = R1

o24 : QuotientRing
i25 : F = res prune pushForward(map(R,R1),M)

        3       5       2
o25 = R1  <-- R1  <-- R1  <-- 0
                               
      0       1       2       3

o25 : ChainComplex
i26 : betti F

             0 1 2
o26 = total: 3 5 2
          6: 1 . .
          7: 2 4 .
          8: . . .
          9: . 1 2

o26 : BettiTally
i27 : betti G

             0 1 2
o27 = total: 3 5 2
          6: 1 . .
          7: 2 4 .
          8: . . .
          9: . 1 2

o27 : BettiTally

See also

Ways to use makeFiniteResolution :

For the programmer

The object makeFiniteResolution is a method function.