Macaulay2 » Documentation
Packages » Bruns :: elementary
next | previous | forward | backward | up | index | toc

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  107a3 107ab3-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  4376a3-5570a2b+3187a2c 4376ab3-5570b4+3187b3c-c4 |

              5      4
o13 : Matrix S  <-- S

This method is called by evansGriffith.

Ways to use elementary :

For the programmer

The object elementary is a method function.