Suppose that I is the image of a free module FI in a quotient module G, and J is the image of the free module FJ in G.
Available strategies for the computation can be listed using the function hooks:
|
The strategy Quotient computes the first components of the syzygies of the map $R\oplus(FJ^\vee\otimes FI) \to FJ^\vee \otimes G$. The Macaulay2 code for each strategy can be viewed using the function code:
|
If Strategy => Iterate then quotient first computes the quotient I1 by the first generator of J. It then checks whether this quotient already annihilates the second generator of J mod I. If so, it goes on to the third generator; else it intersects I1 with the quotient of I by the second generator to produce a new I1. It then iterates this process, working through the generators one at a time.
To use Strategy=>Linear the argument J must be a principal ideal, generated by a linear form. A change of variables is made so that this linear form becomes the last variable. Then a reverse lex Gröbner basis is used, and the quotient of the initial ideal by the last variable is computed combinatorially. This set of monomial is then lifted back to a set of generators for the quotient.
The following examples show timings for the different strategies. Strategy => Iterate is sometimes faster for ideals with a small number of generators:
|
|
|
|
|
|
Strategy => Quotient is faster in other cases:
|
|
|
|
For further information see for example Exercise 15.41 in Eisenbud's Commutative Algebra with a View Towards Algebraic Geometry.