[next][previous][up][top][index]
search for:

ideal quotients and saturation

Sections:

  • colon and quotient
  • saturation
  • 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     3      2   5       6    3 2
    o4 = ideal (a*b  - d , a b - c , a*d  - b*c , c  - d, d  - b c )

    o4 : Ideal of R
    i5 : P = quotient(I,J)

                   2    3   2     2     3      2   5       6    3 2
    o5 = ideal (a*b  - d , a b - c , a*d  - b*c , c  - d, d  - b c )

    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     2     2    3   5
    o6 = ideal (a b - c , a*b  - d , c  - d)

    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 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)

                             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.


    [next][previous][up][top][index]
    search for: