colon and quotient
The
quotient of two ideals
I and
J is the same as
I:J and is the ideal of elements
f such that
f*J is contained in
I.
i1 : R = QQ[a..d];
|
i2 : I = ideal (a^2*b-c^2, a*b^2-d^3, c^5-d);
o2 : Ideal of R
|
i3 : J = ideal (a^2,b^2,c^2,d^2);
o3 : Ideal of R
|
i4 : I:J
2 3 2 2 5
o4 = ideal (a*b - d , a b - c , c - d)
o4 : Ideal of R
|
i5 : P = quotient(I,J)
2 3 2 2 5
o5 = ideal (a*b - d , a b - c , c - d)
o5 : Ideal of R
|
The functions
: and
quotient perform the same basic operation, however
quotient takes two options. The first is
MinimalGenerators which has default value
true meaning the computation is done computing a minimal generating set. You may want to see all of the generators found, setting
MinimalGenerators to
false accomplishes this.
i6 : Q = quotient(I,J,MinimalGenerators => false)
2 3 2 2 5 4 3 4 3
o6 = ideal (- a*b + d , - a b + c , - c + d, a c*d - a*d, a b*c*d -
------------------------------------------------------------------------
4 2 2 2 4 3 2 2 6 2 4 3 2 3
a*b*d, a b c*d - a*b , a b*c d - a*b*c , a b*c*d - a c d - a b +
------------------------------------------------------------------------
2
a*c )
o6 : Ideal of R
|
i7 : Q == P
o7 = true
|
The second option is
Strategy. The default is to use
Iterate which computes successive ideal quotients. Currently (16 May 2001) the other possible options do not work.
saturation
The saturation of an ideal
I with respect to another ideal
J is the ideal
(I : J^*) defined to be the set of elements
f in the ring such that J^N*f is contained in I for some N large enough. Use the function
saturate to compute this ideal. If the ideal
J is not given, the ideal
J is taken to be the ideal generated by the variables of the ring
R of
I.
For example, one way to homogenize an ideal is to homogenize the generators and then saturate with respect to the homogenizing variable.
i8 : R = ZZ/32003[a..d];
|
i9 : I = ideal(a^3-b, a^4-c)
3 4
o9 = ideal (a - b, a - c)
o9 : Ideal of R
|
i10 : Ih = homogenize(I,d)
3 2 4 3
o10 = ideal (a - b*d , a - c*d )
o10 : Ideal of R
|
i11 : saturate(Ih,d)
2 2 3 2 3 2
o11 = ideal (a*b - c*d, a c - b d, b - a*c , a - b*d )
o11 : Ideal of R
|
The function
saturate has three optional arguments. First a strategy for computation can be chosen. The options are ,
Linear,
Iterate,
Bayer, and
Eliminate. We leave descriptions of the options to their links, but give an example of the syntax for optional arguments.
i12 : saturate(Ih,d,Strategy => Bayer)
2 2 3 2 3 2
o12 = ideal (a*b - c*d, a c - b d, b - a*c , a - b*d )
o12 : Ideal of R
|
The second option is
DegreeLimit => n which specifies that the computation should halt after dealing with degree n. The third option is
MinimalGenerators => true which specifies that the computation should not only compute the saturation, but a minimal generating set for that ideal.