obtain a single generator as an element
Once an ideal has been constructed it is possible to obtain individual elements using
_. As always in Macaulay2, indexing starts at 0.
i1 : R = ZZ[w,x,y,z];

i2 : I = ideal(z*w2*x*y, 3*w^3z^3,w*x^24*y*z^2,x);
o2 : Ideal of R

i3 : I_0
o3 =  2x*y + w*z
o3 : R

i4 : I_3
o4 = x
o4 : R

the generators as a matrix or list of elements
Use
generators or its abbreviation
gens to get the generators of an ideal
I as a matrix. Applying
first entries to this matrix converts it to a list.
i5 : gens I
o5 =  2xy+wz 3w3z3 wx24yz2 x 
1 4
o5 : Matrix R < R

i6 : first entries gens I
3 3 2 2
o6 = { 2x*y + w*z, 3w  z , w*x  4y*z , x}
o6 : List

number of generators
The command
numgens gives the number of generators of an ideal
I.
minimal generating set
To obtain a minimal generating set of a homogeneous ideal use
mingens to get the minimal generators as a matrix and use
trim to get the minimal generators as an ideal.
i8 : mingens I
o8 =  x wz 4yz2 3w3z3 
1 4
o8 : Matrix R < R

i9 : trim I
2 3 3
o9 = ideal (x, w*z, 4y*z , 3w  z )
o9 : Ideal of R

The function
mingens is only welldefined for a homogeneous ideal or in a local ring. However, one can still try to get as small a generating set as possible and when it is implemented this function will be done by
trim.
obtaining the input form of an ideal
If the ideal was defined using a function like
monomialCurveIdeal and the generators are desired in the usual format for input of an ideal, the function
toString is very useful. (Note: We are changing rings because
monomialCurveIdeal is not implemented for rings over
ZZ.)
i10 : R = QQ[a..d];

i11 : I = monomialCurveIdeal(R,{1,2,3});
o11 : Ideal of R

i12 : toString I
o12 = ideal(c^2b*d,b*ca*d,b^2a*c)
