next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Macaulay2Doc :: MinimalGenerators

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.0218691 seconds

             1       428
o8 : Matrix R  <--- R
i9 : time J1 = saturate(I);
     -- used 0.376969 seconds

o9 : Ideal of R
i10 : time J = saturate(I, MinimalGenerators => false);
     -- used 0.000076122 seconds

o10 : Ideal of R
i11 : numgens J

o11 = 7
i12 : numgens J1

o12 = 7

See also

Functions with optional argument named MinimalGenerators :

For the programmer

The object MinimalGenerators is a symbol.