Usage:
<sat1 I f J
J = (I:f*) = {g \in F : gf^N \in I, for N >> 0}, where
I is a submodule of the free module F (typically I is an ideal).
Parameters:
I = matrix representing a submodule of a free module F
f = 1x1 matrix, an element of the base ring R of I.
Output values:
J = matrix with the same number of rows as I.
This script uses the method of Bayer's thesis:
First set up a ring S with one more variable than
the ring over which I, f are defined. The new
variable comes last, and reverse lex is used,
so that after computing a standard basis, we can
conveniently "divide by the highest possible power of z."
We apply this division to the module (IS + (f-z)FS).
The ring R may be a quotient ring.