# MinimalGenerators -- whether to compute minimal generators and return a trimmed set of generators

## Description

The following returns two minimal generators (Serre's Theorem: a codim 2 Gorenstein ideal is a complete intersection.)

 i1 : S = ZZ/101[a,b] o1 = S o1 : PolynomialRing i2 : i = ideal(a^4,b^4) 4 4 o2 = ideal (a , b ) o2 : Ideal of S i3 : quotient(i, a^3+b^3) 3 3 o3 = ideal (a*b, a - b ) o3 : Ideal of S

Without trimming we would get 4 generators instead.

 i4 : quotient(i, a^3+b^3, MinimalGenerators => false) 3 3 o4 = ideal (a*b, a - b ) o4 : Ideal of S

Sometimes the extra time to find the minimal generators is too large. This allows one to bypass this part of the computation.

 i5 : needsPackage "Truncations" o5 = Truncations o5 : Package i6 : R = ZZ/101[x_0..x_4] o6 = R o6 : PolynomialRing i7 : I = truncate(8, monomialCurveIdeal(R,{1,4,5,9})); o7 : Ideal of R i8 : time gens gb I; -- used 0.0521348 seconds 1 428 o8 : Matrix R <--- R i9 : time J1 = saturate(I); -- used 0.678402 seconds o9 : Ideal of R i10 : time J = saturate(I, MinimalGenerators => false); -- used 0.000137006 seconds o10 : Ideal of R i11 : numgens J o11 = 7 i12 : numgens J1 o12 = 7

## For the programmer

The object MinimalGenerators is .