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*w-2*x*y, 3*w^3-z^3,w*x^2-4*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 3w3-z3 wx2-4yz2 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 3w3-z3 |
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 well-defined 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^2-b*d,b*c-a*d,b^2-a*c)
|