introduction
It is now possible to find the primary decomposition of an ideal in Macaulay 2. The function
primaryDecomposition applied to an ideal
I returns a list of ideals. These ideals have two key features, first, their intersection is equal to the ideal
I and second the ideals are primary. Therefore these ideals form a primary decomposition of the ideal. Since the ideals are primary their corresponding varieties are irreducible. The decomposition returned is irredundant, which means that the radicals of the ideals returned are distinct prime ideals which are the associated prime ideals for
I (see
associated primes of an ideal).
example
i1 : R = ZZ/101[a..d];
|
i2 : I = ideal(a*b-c*d, (a*c-b*d)^2);
o2 : Ideal of R
|
i3 : primaryDecomposition I
2 2 2
o3 = {ideal (d , a*d, a*b - c*d, a ), ideal (a*c + b*d + 2c*d, b + 2b*c +
------------------------------------------------------------------------
2 2 2 2 2
c , a*b - c*d, a + 2a*d + d ), ideal (c , b*c, b , a*b - c*d), ideal
------------------------------------------------------------------------
2 2 2 2
(a*c + b*d - 2c*d, b - 2b*c + c , a*b - c*d, a - 2a*d + d )}
o3 : List
|
To obtain the associated prime ideals corresponding to the primary components returned by
primaryDecomposition use the function
associatedPrimes. The first entry in the list given by
associatedPrimes is the radical of the first entry in the list given by
primary decomposition.
strategies
The algorithms available for computing primary decompositions are Shimoyama-Yokoyama,
SY, Eisenbud-Huneke-Vasconcelos,
EHV, a hybrid of these two algorithms (SY and EHV),
Hybrid, and Gianni-Trager-Zacharias,
GTZ. The default algorithm in Macaulay 2 is Shimoyama-Yokoyama. Two other arguments for the strategy option are available. These arguments are
Monomial which computes the unique irreducible decomposition of a monomial ideal and
Binomial which computes a cellular decomposition of a binomial ideal. For more information on the strategy options see
primaryDecomposition(..., Strategy => ...).
i4 : primaryDecomposition(I, Strategy => EHV)
2 2 2
o4 = {ideal (d , a*d, a*b - c*d, a ), ideal (a*c + b*d + 2c*d, b + 2b*c +
------------------------------------------------------------------------
2 2 2 2 2
c , a*b - c*d, a + 2a*d + d ), ideal (c , b*c, b , a*b - c*d), ideal
------------------------------------------------------------------------
2 2 2 2
(a*c + b*d - 2c*d, b - 2b*c + c , a*b - c*d, a - 2a*d + d )}
o4 : List
|
warning
Warning (15 May 2001): This function is under construction. For example, the strategies,
Monomial,
GTZ and
Hybrid are not written, or do not function as stated. Further, both the
Monomial and
Binomial strategies may be moved to separate functions.