# mingens(Module) -- minimal generator matrix

## Synopsis

• Function: mingens
• Usage:
mingens I
• Inputs:
• I, , or an ideal
• Optional inputs:
• Strategy => ..., default value null, a Strategy option value
• Outputs:
• , 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.