saturate

saturate(I,J,options) -- computes the saturation (I : J^*) of I w.r.t. J. If J is not given, the ideal J is taken to be the ideal generated by the variables of the ring R of I.

saturate(Ideal)
saturate(Ideal,Ideal)
saturate(Ideal,RingElement)
saturate(Module)
saturate(Module,Ideal)
saturate(Module,RingElement)

If I is either an ideal or a submodule of a module M, the saturation (I : J^*) is defined to be the set of elements f in the ring (first case) or in M (second case) such that J^N * f is contained in I, for some N large enough.

For example, one way to homogenize an ideal is to homogenize the generators and then saturate with respect to the homogenizing variable.

     i1 = R = ZZ/32003[a..d]
     
     o1 = R
     
     o1 : PolynomialRing
     
     i2 = I = ideal(a^3-b, a^4-c)
     
     o2 = ideal | a3-b a4-c |
     
     o2 : Ideal
     
     i3 = Ih = homogenize(I,d)
     
     o3 = ideal | a3-bd2 a4-cd3 |
     
     o3 : Ideal
     
     i4 = saturate(Ih,d)
     
     o4 = image | ab-cd a2c-b2d b3-ac2 a3-bd2 |
     
                                    1
          R - module, submodule of R
     
Allowable options include:
  • DegreeLimit
  • Strategy
  • MinimalGenerators

  • The strategy option value should be one of the following:

  • Linear -- use the reverse lex order
  • Iterate -- use successive ideal quotients (the default)
  • Bayer -- use the method in Bayer's thesis
  • Elimination -- compute the saturation (I:f) by eliminating z from (I,f*z-1)
  • The computation is currently not stored anywhere: this means that the computation cannot be continued after an interrupt.. This will be changed in a later version.

    Go to main index.

    Go to concepts index.