Macaulay2 » Documentation
Packages » Macaulay2Doc » modules » Module » mingens(Module)
next | previous | forward | backward | up | index | toc

# mingens(Module) -- minimal generator matrix

- Function: mingens
- Usage:
    `mingens I`
- Inputs:
  - I, a module, or an ideal
- Optional inputs:
  - Strategy => ..., default value null, a Strategy option value
- Outputs:
  - a matrix, a matrix, whose columns generate I.

## Description

If I is homogeneous, then a matrix, whose columns minimally generate I, is returned.

    i1 : R = QQ[a..f]

    o1 = R

    o1 : PolynomialRing

    i2 : I = ideal(a,b,c) * ideal(a,b,c)

                 2                  2                  2
    o2 = ideal (a , a*b, a*c, a*b, b , b*c, a*c, b*c, c )

    o2 : Ideal of R

    i3 : mingens I

    o3 = | c2 bc ac b2 ab a2 |

                 1      6
    o3 : Matrix R  <-- R

If I is not homogeneous, then an attempt is made to find a more efficient generating matrix, one which is better than a Gröbner basis. There is no guarantee that the generating set is small, or that no subset also generates. The only thing known is that the entries do generate the ideal.

    i4 : J = ideal(a-1, b-2, c-3)

    o4 = ideal (a - 1, b - 2, c - 3)

    o4 : Ideal of R

    i5 : I = J*J

                 2
    o5 = ideal (a  - 2a + 1, a*b - 2a - b + 2, a*c - 3a - c + 3, a*b - 2a - b +
         ------------------------------------------------------------------------
             2
         2, b  - 4b + 4, b*c - 3b - 2c + 6, a*c - 3a - c + 3, b*c - 3b - 2c + 6,
         ------------------------------------------------------------------------
          2
         c  - 6c + 9)

    o5 : Ideal of R

    i6 : mingens I

    o6 = | c2-6c+9 bc-3b-2c+6 ac-3a-c+3 b2-4b+4 ab-2a-b+2 a2-2a+1 |

                 1      6
    o6 : Matrix R  <-- R

Every module I in Macaulay2 is a submodule of a quotient of some ambient free module F. This routine returns a minimal, or improved generating set for the same module I. If you want to minimize the generators and the relations of a subquotient module, use trim. If you want a minimal presentation, then use minimalPresentation.

    i7 : M = matrix{{a^2*b*c-d*e*f,a^3*c-d^2*f,a*d*f-b*c*e-1}}

    o7 = | a2bc-def a3c-d2f -bce+adf-1 |

                 1      3
    o7 : Matrix R  <-- R

    i8 : I = kernel M

    o8 = image {4} | -bce+adf-1 0          a3c-d2f   a4c-bcde-d   -a3ce+d2ef   a4df-bd2ef-a3    -a5df+abd2ef+a4  -a5cf+abcdef+adf |
               {4} | 0          -bce+adf-1 -a2bc+def -a3bc+bce2+e a3df-de2f-a2 -a3bdf+bde2f+a2b a4bdf-abde2f-a3b a4bcf-abce2f-aef |
               {3} | -a2bc+def  -a3c+d2f   0         -a2bcd+a3ce  -a5c+a2d2f   -a2bd2f+a3def    a3bd2f-a4def     a3bcdf-a4cef     |

                                 3
    o8 : R-module, submodule of R

    i9 : J = image mingens I

    o9 = image {4} | bce-adf+1 0         a3c-d2f   |
               {4} | 0         bce-adf+1 -a2bc+def |
               {3} | a2bc-def  a3c-d2f   0         |

                                 3
    o9 : R-module, submodule of R

    i10 : I == J

    o10 = true

    i11 : trim I

    o11 = image {4} | bce-adf+1 0         a3c-d2f   |
                {4} | 0         bce-adf+1 -a2bc+def |
                {3} | a2bc-def  a3c-d2f   0         |

                                  3
    o11 : R-module, submodule of R

If the base ring is a polynomial ring (or quotient of one), then a Gröbner basis computation is started, and continued until all generators have been considered.

## See also

- trim -- minimize generators and relations
- minimalPresentation -- compute a minimal presentation
- kernel -- kernel of a map
- image -- image of a map

## Ways to use this method:

- `mingens(Ideal)`
- mingens(Module) -- minimal generator matrix
- `mingens(MonomialIdeal)`

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Macaulay2Doc/functions/mingens-doc.m2:109:0.