Macaulay2 » Documentation
Packages » Saturation > saturate
next | previous | forward | backward | up | index | toc

saturate -- saturation of ideal or submodule

Synopsis

Description

If $I$ is either an ideal or a submodule of a module $M$, the saturation $I : J^\infty$ is defined to be the set of elements $f$ in the ring or $M$ such that $f J^N$ 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)

             3       4
o2 = ideal (a  - b, a  - c)

o2 : Ideal of R
i3 : Ih = homogenize(I,d)

                        2     2    3      2   3      2
o3 = ideal (a*b - c*d, a c - b d, b  - a*c , a  - b*d )

o3 : Ideal of R
i4 : saturate(Ih,d)

                        2     2    3      2   3      2
o4 = ideal (a*b - c*d, a c - b d, b  - a*c , a  - b*d )

o4 : Ideal of R

We can use this command to remove graded submodules of finite length.

i5 : m = ideal vars R

o5 = ideal (a, b, c, d)

o5 : Ideal of R
i6 : M = R^1 / (a * m^2)

o6 = cokernel | a3 a2b a2c a2d ab2 abc abd ac2 acd ad2 |

                            1
o6 : R-module, quotient of R
i7 : M / saturate 0_M

o7 = cokernel | a a3 a2b a2c a2d ab2 abc abd ac2 acd ad2 |

                            1
o7 : R-module, quotient of R

If $I$ and $J$ are both monomial ideals, then a faster algorithm is used. Otherwise, when needed, Gröbner bases will be computed, and if the computation succeeds the result is cached inside the first argument. Partial computations are not yet cached, but this may change in a future version.

See also

Ways to use saturate :

For the programmer

The object saturate is a method function with options.

Menu