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

elementary -- Elementary moves are used to reduce the target of a syzygy matrix

Synopsis

Description

Factors out a general element, reducing the rank of f. More precisely, the routine adds random multiples of the last row, whose coefficients are polynomials in the first m variables, to the k preceding rows and drops the last row. For this to be effective, the target degrees of f must be in ascending order.

This is a fundamental operation in the theory of basic elements, see D. Eisenbud and E. G. Evans, Basic elements: theorems from algebraic k-theory, Bulletin of the AMS, 78, No.4, 1972, 546-549.

Here is a basic example:
i1 : kk=ZZ/32003

o1 = kk

o1 : QuotientRing
i2 : S=kk[a..d]

o2 = S

o2 : PolynomialRing
i3 : M=matrix{{a,0,0,0},{0,b,0,0},{0,0,c,0},{0,0,0,d}}

o3 = | a 0 0 0 |
     | 0 b 0 0 |
     | 0 0 c 0 |
     | 0 0 0 d |

             4       4
o3 : Matrix S  <--- S
i4 : elementary(M,0,1)-- since k=0, this command simply eliminates the last row of M.

o4 = | a 0 0 0 |
     | 0 b 0 0 |
     | 0 0 c 0 |

             3       4
o4 : Matrix S  <--- S
Here is a more involved example. This is also how this function is used within the package.
i5 : kk=ZZ/32003

o5 = kk

o5 : QuotientRing
i6 : S=kk[a..d]

o6 = S

o6 : PolynomialRing
i7 : I=ideal(a^2,b^3,c^4, d^5)

             2   3   4   5
o7 = ideal (a , b , c , d )

o7 : Ideal of S
i8 : F=res I

      1      4      6      4      1
o8 = S  <-- S  <-- S  <-- S  <-- S  <-- 0
                                         
     0      1      2      3      4      5

o8 : ChainComplex
i9 : M=image F.dd_3

o9 = image {5} | c4  d5  0   0   |
           {6} | -b3 0   d5  0   |
           {7} | a2  0   0   d5  |
           {7} | 0   -b3 -c4 0   |
           {8} | 0   a2  0   -c4 |
           {9} | 0   0   a2  b3  |

                             6
o9 : S-module, submodule of S
i10 : f=matrix gens M

o10 = {5} | c4  d5  0   0   |
      {6} | -b3 0   d5  0   |
      {7} | a2  0   0   d5  |
      {7} | 0   -b3 -c4 0   |
      {8} | 0   a2  0   -c4 |
      {9} | 0   0   a2  b3  |

              6       4
o10 : Matrix S  <--- S
i11 : fascending=transpose sort(transpose f, DegreeOrder=>Descending) -- this is f with rows sorted so that the degrees are ascending.

o11 = {5} | c4  d5  0   0   |
      {6} | -b3 0   d5  0   |
      {7} | 0   -b3 -c4 0   |
      {7} | a2  0   0   d5  |
      {8} | 0   a2  0   -c4 |
      {9} | 0   0   a2  b3  |

              6       4
o11 : Matrix S  <--- S
i12 : g=elementary(fascending,1,1) --k=1, so add random multiples of the last row to the preceding row

o12 = {5} | c4  d5  0        0            |
      {6} | -b3 0   d5       0            |
      {7} | 0   -b3 -c4      0            |
      {7} | a2  0   0        d5           |
      {8} | 0   a2  -13350a3 -13350ab3-c4 |

              5       4
o12 : Matrix S  <--- S
i13 : g1=elementary(fascending,1,3)

o13 = {5} | c4  d5  0                        0                           |
      {6} | -b3 0   d5                       0                           |
      {7} | 0   -b3 -c4                      0                           |
      {7} | a2  0   0                        d5                          |
      {8} | 0   a2  -4576a3-11909a2b+5014a2c -4576ab3-11909b4+5014b3c-c4 |

              5       4
o13 : Matrix S  <--- S
This method is called by evansGriffith.

Ways to use elementary :