saturate(I,J,options) -- computes the saturation (I : J^*) of I with respect to 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.
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]; |
i2 : I = ideal(a^3-b, a^4-c) |
i3 : Ih = homogenize(I,d) |
i4 : saturate(Ih,d) |
We can use this command to remove graded submodules of finite length.
i5 : m = ideal vars R |
i6 : M = R^1 / (a * m^2) |
i7 : M / saturate 0_M |
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.
Ways to use saturate :
Optional arguments :