This is Bruns.info, produced by Macaulay2, version 1.25.05

Bruns -- produces an ideal with three generators whose 2nd syzygy module is isomorphic to a given module
********************************************************************************************************

Description
===========

Bruns  is a package of functions for transforming syzygies.

A well-known paper of Winfried Bruns, entitled ''Jede'' freie Aufl\"osung ist
freie Aufl\"osung eines drei-Erzeugenden Ideals  (J. Algebra 39 (1976), no. 2,
429-439), shows that every second syzygy module is the second syzygy module of
an ideal with three generators.

The general context of this result uses the theory of ''basic elements'', a
commutative algebra version of the general position arguments of the algebraic
geometers.   The ''Syzygy Theorem'' of Evans and Griffiths (Syzygies. London
Mathematical Society Lecture Note Series, 106. Cambridge University Press,
Cambridge, 1985) asserts that if a module M over a regular local ring S
containing a field (the field is conjecturally not necessary), or a graded
module over a polynomial ring S, is a k-th syzygy module but not a free module,
then M has rank at least k. The theory of basic elements shows that if M is a
k-th syzygy of rank >k, then for a ''sufficiently general'' element m of M the
module M/Sm is again a k-th syzygy.

The idea of Bruns' theorem is that if M is a second syzygy module, then
factoring out (rank M) - 2 general elements gives a second syzygy N of rank 2.
It turns out that three general homomorphisms from M to S embed N in S^3 in
such a way that the quotient S^3/N is an ideal generated by three elements.

This package implements this method.

Author
======

  * David Eisenbud (see http://www.msri.org/~de ) <de@msri.org>

Version
=======

This documentation describes version 2.0 of Bruns.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{BrunsSource,                                                           |
|  title = {{Bruns: make a 3-generator                                        |
|  author = {David Eisenbud},                                                 |
|  howpublished = {A \emph{Macaulay2}                                         |
|    \url{https://github.com/Macaulay2                                        |
|}                                                                            |
|-----------------------------------------------------------------------------|
| ideal with an ``any" resolution. Version~2.0}},                             |
|                                                                             |
|package available at                                                         |
|/M2/tree/master/M2/Macaulay2/packages}}                                      |
+-----------------------------------------------------------------------------+

Exports
=======

  * Functions and commands
      * bruns -- Returns an ideal generated by three elements
        whose 2nd syzygy module is isomorphic to a given module
      * brunsIdeal -- Returns an ideal generated by three
        elements whose 2nd syzygy module agrees with the given ideal
      * elementary -- Elementary moves are used to reduce
        the target of a syzygy matrix
      * evansGriffith -- Reduces the rank of a syzygy
      * isSyzygy -- Tests if a module is a d-th syzygy
  * Methods
      * "bruns(Matrix)" -- see bruns, -- Returns an ideal
        generated by three elements whose 2nd syzygy module is isomorphic to a
        given module
      * "bruns(Module)" -- see bruns, -- Returns an ideal
        generated by three elements whose 2nd syzygy module is isomorphic to a
        given module
      * "brunsIdeal(Ideal)" -- see brunsIdeal, -- Returns an
        ideal generated by three elements whose 2nd syzygy module agrees with
        the given ideal
      * "elementary(Matrix,ZZ,ZZ)" -- see elementary, --
        Elementary moves are used to reduce the target of a syzygy matrix
      * "evansGriffith(Matrix,ZZ)" -- see evansGriffith,
        -- Reduces the rank of a syzygy
      * "isSyzygy(Module,ZZ)" -- see isSyzygy, -- Tests if a
        module is a d-th syzygy

For the programmer
==================

The object Bruns, is a package (Macaulay2Doc),
defined in Bruns.m2.

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:222:0.

bruns -- Returns an ideal generated by three elements whose 2nd syzygy module is isomorphic to a given module
*************************************************************************************************************

  * Usage:
        j= bruns M or  j= bruns f
  * Inputs:
      * M, a module (Macaulay2Doc), a second syzygy (graded)
        module
      * f, a matrix (Macaulay2Doc), whose cokernel is a second
        syzygy (graded) module
  * Outputs:
      * j, an ideal (Macaulay2Doc), a homogeneous ideal generated
        by three elements whose second syzygy module is isomorphic to M, or
        image f

Description
===========

This function takes a graded module M over a polynomial ring S that is a second
syzygy, and returns a three-generator ideal j whose second syzygy is M, so that
the resolution of S/j, from the third step, is isomorphic to the resolution of
M. Alternately bruns takes a matrix whose cokernel is a second syzygy, and
finds a 3-generator ideal whose second syzygy is the image of that matrix.

+----------------------------------------------+
|i1 : kk=ZZ/32003                              |
|                                              |
|o1 = kk                                       |
|                                              |
|o1 : QuotientRing                             |
+----------------------------------------------+
|i2 : S=kk[a..d]                               |
|                                              |
|o2 = S                                        |
|                                              |
|o2 : PolynomialRing                           |
+----------------------------------------------+
|i3 : i=ideal(a^2,b^2,c^2, d^2)                |
|                                              |
|             2   2   2   2                    |
|o3 = ideal (a , b , c , d )                   |
|                                              |
|o3 : Ideal of S                               |
+----------------------------------------------+
|i4 : betti (F=res i)                          |
|                                              |
|            0 1 2 3 4                         |
|o4 = total: 1 4 6 4 1                         |
|         0: 1 . . . .                         |
|         1: . 4 . . .                         |
|         2: . . 6 . .                         |
|         3: . . . 4 .                         |
|         4: . . . . 1                         |
|                                              |
|o4 : BettiTally                               |
+----------------------------------------------+
|i5 : M = image F.dd_3                         |
|                                              |
|o5 = image {4} | c2  d2  0   0   |            |
|           {4} | -b2 0   d2  0   |            |
|           {4} | a2  0   0   d2  |            |
|           {4} | 0   -b2 -c2 0   |            |
|           {4} | 0   a2  0   -c2 |            |
|           {4} | 0   0   a2  b2  |            |
|                                              |
|                             6                |
|o5 : S-module, submodule of S                 |
+----------------------------------------------+
|i6 : f=F.dd_3                                 |
|                                              |
|o6 = {4} | c2  d2  0   0   |                  |
|     {4} | -b2 0   d2  0   |                  |
|     {4} | a2  0   0   d2  |                  |
|     {4} | 0   -b2 -c2 0   |                  |
|     {4} | 0   a2  0   -c2 |                  |
|     {4} | 0   0   a2  b2  |                  |
|                                              |
|             6      4                         |
|o6 : Matrix S  <-- S                          |
+----------------------------------------------+
|i7 : j=bruns M;                               |
|                                              |
|o7 : Ideal of S                               |
+----------------------------------------------+
|i8 : betti res j -- the ideal has 3 generators|
|                                              |
|            0 1 2 3 4                         |
|o8 = total: 1 3 5 4 1                         |
|         0: 1 . . . .                         |
|         1: . . . . .                         |
|         2: . . . . .                         |
|         3: . 3 . . .                         |
|         4: . . . . .                         |
|         5: . . . . .                         |
|         6: . . 5 . .                         |
|         7: . . . 4 .                         |
|         8: . . . . 1                         |
|                                              |
|o8 : BettiTally                               |
+----------------------------------------------+

Here is a more complicated example, also involving a complete intersection.
You can see that columns three and four in the two Betti diagrams are the same.

+-----------------------------------+
|i9 : kk=ZZ/32003                   |
|                                   |
|o9 = kk                            |
|                                   |
|o9 : QuotientRing                  |
+-----------------------------------+
|i10 : S=kk[a..d]                   |
|                                   |
|o10 = S                            |
|                                   |
|o10 : PolynomialRing               |
+-----------------------------------+
|i11 : i=ideal(a^2,b^3,c^4, d^5)    |
|                                   |
|              2   3   4   5        |
|o11 = ideal (a , b , c , d )       |
|                                   |
|o11 : Ideal of S                   |
+-----------------------------------+
|i12 : betti (F=res i)              |
|                                   |
|             0 1 2 3 4             |
|o12 = total: 1 4 6 4 1             |
|          0: 1 . . . .             |
|          1: . 1 . . .             |
|          2: . 1 . . .             |
|          3: . 1 1 . .             |
|          4: . 1 1 . .             |
|          5: . . 2 . .             |
|          6: . . 1 1 .             |
|          7: . . 1 1 .             |
|          8: . . . 1 .             |
|          9: . . . 1 .             |
|         10: . . . . 1             |
|                                   |
|o12 : BettiTally                   |
+-----------------------------------+
|i13 : M = image F.dd_3             |
|                                   |
|o13 = 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    |
|o13 : S-module, submodule of S     |
+-----------------------------------+
|i14 : f=F.dd_3                     |
|                                   |
|o14 = {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             |
|o14 : Matrix S  <-- S              |
+-----------------------------------+
|i15 : j1=bruns f;                  |
|                                   |
|o15 : Ideal of S                   |
+-----------------------------------+
|i16 : betti res j1                 |
|                                   |
|             0 1 2 3 4             |
|o16 = total: 1 3 5 4 1             |
|          0: 1 . . . .             |
|          1: . . . . .             |
|          2: . . . . .             |
|          3: . . . . .             |
|          4: . . . . .             |
|          5: . . . . .             |
|          6: . . . . .             |
|          7: . . . . .             |
|          8: . 1 . . .             |
|          9: . 2 . . .             |
|         10: . . . . .             |
|         11: . . . . .             |
|         12: . . . . .             |
|         13: . . . . .             |
|         14: . . . . .             |
|         15: . . 1 . .             |
|         16: . . 1 . .             |
|         17: . . 2 . .             |
|         18: . . 1 1 .             |
|         19: . . . 1 .             |
|         20: . . . 1 .             |
|         21: . . . 1 .             |
|         22: . . . . 1             |
|                                   |
|o16 : BettiTally                   |
+-----------------------------------+
|i17 : j=bruns M;                   |
|                                   |
|o17 : Ideal of S                   |
+-----------------------------------+
|i18 : betti res j                  |
|                                   |
|             0 1 2 3 4             |
|o18 = total: 1 3 5 4 1             |
|          0: 1 . . . .             |
|          1: . . . . .             |
|          2: . . . . .             |
|          3: . . . . .             |
|          4: . . . . .             |
|          5: . . . . .             |
|          6: . . . . .             |
|          7: . . . . .             |
|          8: . 1 . . .             |
|          9: . 2 . . .             |
|         10: . . . . .             |
|         11: . . . . .             |
|         12: . . . . .             |
|         13: . . . . .             |
|         14: . . . . .             |
|         15: . . 1 . .             |
|         16: . . 1 . .             |
|         17: . . 2 . .             |
|         18: . . 1 1 .             |
|         19: . . . 1 .             |
|         20: . . . 1 .             |
|         21: . . . 1 .             |
|         22: . . . . 1             |
|                                   |
|o18 : BettiTally                   |
+-----------------------------------+

In the next example, we perform the "Brunsification" of a rational curve.

+-----------------------------------------------------------------------------+
|i19 : kk=ZZ/32003                                                            |
|                                                                             |
|o19 = kk                                                                     |
|                                                                             |
|o19 : QuotientRing                                                           |
+-----------------------------------------------------------------------------+
|i20 : S=kk[a..e]                                                             |
|                                                                             |
|o20 = S                                                                      |
|                                                                             |
|o20 : PolynomialRing                                                         |
+-----------------------------------------------------------------------------+
|i21 : i=monomialCurveIdeal(S, {1,3,4,5})                                     |
|                                                                             |
|              2                    2                            2    3    2  |
|o21 = ideal (d  - c*e, b*d - a*e, c  - b*e, b*c - a*d, a*c*d - b e, b  - a c)|
|                                                                             |
|o21 : Ideal of S                                                             |
+-----------------------------------------------------------------------------+
|i22 : betti (F=res i)                                                        |
|                                                                             |
|             0 1 2 3 4                                                       |
|o22 = total: 1 5 8 5 1                                                       |
|          0: 1 . . . .                                                       |
|          1: . 4 2 . .                                                       |
|          2: . 1 6 5 1                                                       |
|                                                                             |
|o22 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i23 : time j=bruns F.dd_3;                                                   |
| -- used 0.195181s (cpu); 0.195621s (thread); 0s (gc)                        |
|                                                                             |
|o23 : Ideal of S                                                             |
+-----------------------------------------------------------------------------+
|i24 : betti res j                                                            |
|                                                                             |
|             0 1 2 3 4                                                       |
|o24 = total: 1 3 6 5 1                                                       |
|          0: 1 . . . .                                                       |
|          1: . . . . .                                                       |
|          2: . . . . .                                                       |
|          3: . . . . .                                                       |
|          4: . 3 . . .                                                       |
|          5: . . . . .                                                       |
|          6: . . . . .                                                       |
|          7: . . 2 . .                                                       |
|          8: . . 4 5 1                                                       |
|                                                                             |
|o24 : BettiTally                                                             |
+-----------------------------------------------------------------------------+

See also
========

  * brunsIdeal -- Returns an ideal generated by three
    elements whose 2nd syzygy module agrees with the given ideal

Ways to use bruns:
==================

  * "bruns(Matrix)"
  * "bruns(Module)"

For the programmer
==================

The object bruns, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:288:0.

brunsIdeal -- Returns an ideal generated by three elements whose 2nd syzygy module agrees with the given ideal
**************************************************************************************************************

  * Usage:
        j = brunsIdeal i
  * Inputs:
      * i, an ideal (Macaulay2Doc), a homogeneous ideal
  * Outputs:
      * j, an ideal (Macaulay2Doc), a homogeneous ideal generated
        by three elements whose second syzygy module is isomorphic the second
        syzygy module of the ideal i.

Description
===========

This function is a special case of the function bruns.  Given an
ideal, the user can find another ideal which is 3-generated, and furthermore,
the second syzygy modules of both ideals are isomorphic.  Although one can use
bruns, to do this procedure, this function cuts out some of the
steps.

+------------------------------------------------------------------------+
|i1 : kk=ZZ/32003                                                        |
|                                                                        |
|o1 = kk                                                                 |
|                                                                        |
|o1 : QuotientRing                                                       |
+------------------------------------------------------------------------+
|i2 : S=kk[a..d]                                                         |
|                                                                        |
|o2 = S                                                                  |
|                                                                        |
|o2 : PolynomialRing                                                     |
+------------------------------------------------------------------------+
|i3 : i=ideal(a^2,b^2,c^2, d^2)                                          |
|                                                                        |
|             2   2   2   2                                              |
|o3 = ideal (a , b , c , d )                                             |
|                                                                        |
|o3 : Ideal of S                                                         |
+------------------------------------------------------------------------+
|i4 : betti (F=res i)                                                    |
|                                                                        |
|            0 1 2 3 4                                                   |
|o4 = total: 1 4 6 4 1                                                   |
|         0: 1 . . . .                                                   |
|         1: . 4 . . .                                                   |
|         2: . . 6 . .                                                   |
|         3: . . . 4 .                                                   |
|         4: . . . . 1                                                   |
|                                                                        |
|o4 : BettiTally                                                         |
+------------------------------------------------------------------------+
|i5 : M = image F.dd_3                                                   |
|                                                                        |
|o5 = image {4} | c2  d2  0   0   |                                      |
|           {4} | -b2 0   d2  0   |                                      |
|           {4} | a2  0   0   d2  |                                      |
|           {4} | 0   -b2 -c2 0   |                                      |
|           {4} | 0   a2  0   -c2 |                                      |
|           {4} | 0   0   a2  b2  |                                      |
|                                                                        |
|                             6                                          |
|o5 : S-module, submodule of S                                           |
+------------------------------------------------------------------------+
|i6 : j1 = bruns M                                                       |
|                                                                        |
|                  4          2 2    2 2        2 2        4         2 2 |
|o6 = ideal (-9831d , - 15925b c  - a d  + 6174b d , 15925b  - 12753b d )|
|                                                                        |
|o6 : Ideal of S                                                         |
+------------------------------------------------------------------------+
|i7 : betti res j1                                                       |
|                                                                        |
|            0 1 2 3 4                                                   |
|o7 = total: 1 3 5 4 1                                                   |
|         0: 1 . . . .                                                   |
|         1: . . . . .                                                   |
|         2: . . . . .                                                   |
|         3: . 3 . . .                                                   |
|         4: . . . . .                                                   |
|         5: . . . . .                                                   |
|         6: . . 5 . .                                                   |
|         7: . . . 4 .                                                   |
|         8: . . . . 1                                                   |
|                                                                        |
|o7 : BettiTally                                                         |
+------------------------------------------------------------------------+
|i8 : j2=brunsIdeal i                                                    |
|                                                                        |
|                  4        2 2    2 2        2 2          4        2 2  |
|o8 = ideal (-3490d , 11765b c  - a d  + 8771b d , - 11765b  - 5457b d ) |
|                                                                        |
|o8 : Ideal of S                                                         |
+------------------------------------------------------------------------+
|i9 : betti res j2                                                       |
|                                                                        |
|            0 1 2 3 4                                                   |
|o9 = total: 1 3 5 4 1                                                   |
|         0: 1 . . . .                                                   |
|         1: . . . . .                                                   |
|         2: . . . . .                                                   |
|         3: . 3 . . .                                                   |
|         4: . . . . .                                                   |
|         5: . . . . .                                                   |
|         6: . . 5 . .                                                   |
|         7: . . . 4 .                                                   |
|         8: . . . . 1                                                   |
|                                                                        |
|o9 : BettiTally                                                         |
+------------------------------------------------------------------------+
|i10 : (betti res j1) == (betti res j2)                                  |
|                                                                        |
|o10 = true                                                              |
+------------------------------------------------------------------------+

See also
========

  * bruns -- Returns an ideal generated by three elements whose
    2nd syzygy module is isomorphic to a given module

Ways to use brunsIdeal:
=======================

  * "brunsIdeal(Ideal)"

For the programmer
==================

The object brunsIdeal, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:328:0.

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

  * Usage:
        g= elementary(f,k,m)
  * Inputs:
      * f, a matrix (Macaulay2Doc), whose target degrees are in
        ascending order
      * k, an integer (Macaulay2Doc), whose value is strictly less
        than the number of rows of f
      * m, an integer (Macaulay2Doc), positive
  * Outputs:
      * g, a matrix (Macaulay2Doc), obtained from f by adding
        random multiples of the last row by polynomials in the first m
        variables to the k preceding rows, and then deleting the last row.

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  |
|                                                                             |
|o4 = | a 0 0 0 |                                                             |
|     | 0 b 0 0 |                                                             |
|     | 0 0 c 0 |                                                             |
|                                                                             |
|             3      4                                                        |
|o4 : Matrix S  <-- S                                                         |
|-----------------------------------------------------------------------------|
|row of M.                                                                    |
+-----------------------------------------------------------------------------+

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|
|                                                                             |
|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                                                        |
|-----------------------------------------------------------------------------|
|is f with rows sorted so that the degrees are ascending.                     |
+-----------------------------------------------------------------------------+
|i12 : g=elementary(fascending,1,1) --k=1, so add random multiples of the last|
|                                                                             |
|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                                                        |
|-----------------------------------------------------------------------------|
|row to the preceding row                                                     |
+-----------------------------------------------------------------------------+
|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:
=======================

  * "elementary(Matrix,ZZ,ZZ)"

For the programmer
==================

The object elementary, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:383:0.

evansGriffith -- Reduces the rank of a syzygy
*********************************************

  * Usage:
        N = evansGriffith(M,d)
  * Inputs:
      * M, a matrix (Macaulay2Doc), over a polynomial ring whose
        cokernel is an d-th syzygy.
      * d, an integer (Macaulay2Doc), positive
  * Outputs:
      * N, a matrix (Macaulay2Doc), with the same source and
        kernel as M, but such that coker N is a dth syzygy of rank d.

Description
===========

The routine reduces the target of M by elementary moves (see elementary)
involving just d+1 variables. The outcome is probabilistic, but if
the routine fails, it gives an error message.

See the book of Evans and Griffith (Syzygies. London Mathematical Society
Lecture Note Series, 106. Cambridge University Press, Cambridge, 1985.)

+-----------------------------------------------------------------------------+
|i1 : kk=ZZ/32003                                                             |
|                                                                             |
|o1 = kk                                                                      |
|                                                                             |
|o1 : QuotientRing                                                            |
+-----------------------------------------------------------------------------+
|i2 : S=kk[a..e]                                                              |
|                                                                             |
|o2 = S                                                                       |
|                                                                             |
|o2 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i3 : i=ideal(a^2,b^3,c^4, d^5)                                               |
|                                                                             |
|             2   3   4   5                                                   |
|o3 = ideal (a , b , c , d )                                                  |
|                                                                             |
|o3 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i4 : F=res i                                                                 |
|                                                                             |
|      1      4      6      4      1                                          |
|o4 = S  <-- S  <-- S  <-- S  <-- S  <-- 0                                    |
|                                                                             |
|     0      1      2      3      4      5                                    |
|                                                                             |
|o4 : ChainComplex                                                            |
+-----------------------------------------------------------------------------+
|i5 : f=F.dd_3                                                                |
|                                                                             |
|o5 = {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                                                        |
|o5 : Matrix S  <-- S                                                         |
+-----------------------------------------------------------------------------+
|i6 : EG = evansGriffith(f,2)  -- notice that we have a matrix with one less r|
|                                                                             |
|o6 = {5} | c4  d5  0                                                         |
|     {6} | -b3 0   d5                                                        |
|     {7} | 0   -b3 -8251a4+5071a3b-9480a2b2+12365a3c+8231a2bc+5026a2c2-c4    |
|     {7} | a2  0   2653a4-6203a3b-11950a2b2-13508a3c+5864a2bc+10259a2c2      |
|     {8} | 0   a2  -7501a3+9534a2b-7216a2c                                   |
|     ------------------------------------------------------------------------|
|     0                                                       |               |
|     0                                                       |               |
|     -8251a2b3+5071ab4-9480b5+12365ab3c+8231b4c+5026b3c2     |               |
|     2653a2b3-6203ab4-11950b5-13508ab3c+5864b4c+10259b3c2+d5 |               |
|     -7501ab3+9534b4-7216b3c-c4                              |               |
|                                                                             |
|             5      4                                                        |
|o6 : Matrix S  <-- S                                                         |
|-----------------------------------------------------------------------------|
|ow, as described in elementary, and the target module rank is one less.      |
+-----------------------------------------------------------------------------+
|i7 : isSyzygy(coker EG,2)                                                    |
|                                                                             |
|o7 = true                                                                    |
+-----------------------------------------------------------------------------+

This is called within bruns.

Ways to use evansGriffith:
==========================

  * "evansGriffith(Matrix,ZZ)"

For the programmer
==================

The object evansGriffith, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:425:0.

isSyzygy -- Tests if a module is a d-th syzygy
**********************************************

  * Usage:
        b = isSyzygy(M,d)
  * Inputs:
      * M, a module (Macaulay2Doc), over a polynomial ring.
      * d, an integer (Macaulay2Doc), positive
  * Outputs:
      * b, a Boolean value (Macaulay2Doc), returns true if M is
        a d-th syzygy, and false otherwise.

Description
===========

This algorithm is based upon the methods described in the book of Evans and
Griffith (Syzygies. London Mathematical Society Lecture Note Series, 106.
Cambridge University Press, Cambridge, 1985.)

+--------------------------------------------+
|i1 : kk=ZZ/32003                            |
|                                            |
|o1 = kk                                     |
|                                            |
|o1 : QuotientRing                           |
+--------------------------------------------+
|i2 : S=kk[a..d]                             |
|                                            |
|o2 = S                                      |
|                                            |
|o2 : PolynomialRing                         |
+--------------------------------------------+
|i3 : F=res (ideal vars S)^2                 |
|                                            |
|      1      10      20      15      4      |
|o3 = S  <-- S   <-- S   <-- S   <-- S  <-- 0|
|                                            |
|     0      1       2       3       4      5|
|                                            |
|o3 : ChainComplex                           |
+--------------------------------------------+

NOTE:  We are viewing a syzygy module as a cokernel of an appropriate map.

+-----------------------------------------------------------------------------+
|i4 : isSyzygy(coker F.dd_3,3)  -- the cokernel defined by the 3rd map is not |
|                                                                             |
|o4 = false                                                                   |
|-----------------------------------------------------------------------------|
|a 3rd syzygy                                                                 |
+-----------------------------------------------------------------------------+
|i5 : isSyzygy(coker F.dd_4,3)  -- the cokernel defined by the 4th map is a   |
|                                                                             |
|o5 = true                                                                    |
|-----------------------------------------------------------------------------|
|3rd syzygy                                                                   |
+-----------------------------------------------------------------------------+

This function is called within evansGriffith.

Ways to use isSyzygy:
=====================

  * "isSyzygy(Module,ZZ)"

For the programmer
==================

The object isSyzygy, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in Bruns.m2:463:0.