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

makeFiniteResolution -- finite resolution of a matrix factorization module M

Synopsis

Description

Suppose that f1..fc 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/(f1,..,fc) = 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/(f1,..,f(c-c’)) (and, more generally, has complexity c-d over S/(f1,..,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} | a2 -c -b 0  0  0  0   0  0  |, {6} | a c  b  0  0   0  0  0  0  
      {4} | 0  a  0  b  0  0  0   0  0  |  {5} | 0 a2 0  -b 0   0  0  0  0  
      {4} | 0  0  a  -c 0  b2 0   0  0  |  {5} | 0 0  a2 c  -b2 0  0  0  0  
      {3} | 0  0  0  a2 0  0  -b2 0  0  |  {5} | 0 0  0  a  0   b2 0  0  0  
      {4} | 0  0  0  0  0  a2 -c  0  -b |  {6} | 0 0  0  0  0   0  0  0  a  
      {4} | 0  0  0  0  0  0  a   b  0  |  {6} | 0 0  0  0  a   c  b  0  0  
      {4} | 0  0  0  0  b2 0  0   -c a  |  {5} | 0 0  0  0  0   a2 0  -b 0  
                                           {5} | 0 0  0  0  0   0  0  a  0  
                                           {5} | 0 0  0  0  0   0  a2 c  -b2
     ------------------------------------------------------------------------
     0  0 |}
     0  0 |
     0  0 |
     0  0 |
     c  b |
     0  0 |
     0  0 |
     b2 0 |
     0  0 |

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

      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} | a2 -c -b 0  0  0  0   0  0  0   0   0   |
     {4} | 0  a  0  b  0  0  0   0  0  0   0   0   |
     {4} | 0  0  a  -c 0  b2 0   0  0  0   0   0   |
     {3} | 0  0  0  a2 0  0  -b2 0  0  0   0   0   |
     {4} | 0  0  0  0  0  a2 -c  0  -b -a3 0   0   |
     {4} | 0  0  0  0  0  0  a   b  0  0   -a3 0   |
     {4} | 0  0  0  0  b2 0  0   -c a  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  -a2c 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  -b2c 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 = {6} | 0   b3   0    0   0   |
      {5} | 0   0    b3   0   0   |
      {5} | 0   a2b2 -b2c 0   0   |
      {5} | 0   0    -ab2 0   0   |
      {6} | -a3 0    0    0   0   |
      {6} | 0   -a3  0    0   0   |
      {5} | 0   0    -a3  0   0   |
      {5} | 0   0    0    -a3 0   |
      {5} | 0   0    0    0   -a3 |
      {7} | 0   -a2  c    0   b   |
      {7} | 0   0    -a   -b  0   |
      {7} | -b2 0    0    c   -a  |

              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} | -bc  ac  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 : setRandomSeed 0

o13 = 0
i14 : S = ZZ/101[a,b,c,d]

o14 = S

o14 : PolynomialRing
i15 : ff1 = matrix"a3,b3,c3,d3"

o15 = | a3 b3 c3 d3 |

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

o16 = | 42a3-50b3+39c3+9d3 -15a3-22b3+50c3+45d3 -29a3-39b3+30c3+19d3
      -----------------------------------------------------------------------
      -38a3+2b3-4c3-36d3 |

              1       4
o16 : Matrix S  <--- S
i17 : R = S/ideal ff

o17 = R

o17 : QuotientRing
i18 : M = highSyzygy (R^1/ideal"a2b2")

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

                             3
o18 : R-module, quotient of R
i19 : complexity M

o19 = 2
i20 : mf = matrixFactorization (ff, M)

o20 = {{7} | a   37b 0     0  |, {8} | 39a2 -29b -18a2 0    0    |}
       {6} | -b2 a2  -16b2 0  |  {8} | 39b2 39a  0     0    0    |
       {7} | 0   0   a     -b |  {8} | 0    0    39a2  -29b 0    |
                                 {8} | 0    0    -29b2 -29a 41b2 |

o20 : List
i21 : complexity mf

o21 = 2
i22 : BRanks mf

o22 = {{0, 0}, {0, 0}, {2, 2}, {1, 2}}

o22 : List
i23 : G = makeFiniteResolution(mf,ff);
i24 : codim ring G

o24 = 2
i25 : R1 = ring G

o25 = R1

o25 : QuotientRing
i26 : F = res prune pushForward(map(R,R1),M)

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

o26 : ChainComplex
i27 : betti F

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

o27 : BettiTally
i28 : betti G

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

o28 : BettiTally

See also

Ways to use makeFiniteResolution :