i1 : R = QQ[a..d]; |
i2 : I = ideal (a^2*b-c^2, a*b^2-d^3, c^5-d); |
i3 : J = ideal (a^2,b^2,c^2,d^2); |
i4 : I:J |
i5 : P = quotient(I,J) |
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) |
i7 : Q == P |
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.
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) |
i10 : Ih = homogenize(I,d) |
i11 : saturate(Ih,d) |
The function saturate has three optional arguments. First a strategy for computation can be chosen. The options are , Linear, Iterate, Bayer, and Elimination. 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) |
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.