In this case, the only available strategy is similar to the Eisenbud-Huneke-Vasconcelos strategy and is implemented by Justin Chen. Optionally, it is possible to specify the strategy for finding the embedded components by passing
Strategy => Hybrid{strategy for getEmbeddedComponents}
where the strategy is one of "Hom", "Sat", or "Res". See primaryDecomposition(Module) for more information.
In this case, the strategy option value should be one of the following:
The strategies are implemented as hooks, meaning that each strategy is attempted in the reverse order in which it was added until one is successful.
i1 : hooks(primaryDecomposition, Ideal) o1 = {0 => (primaryDecomposition, Ideal, Strategy => Comodule) } {1 => (primaryDecomposition, Ideal, Strategy => EisenbudHunekeVasconcelos)} {2 => (primaryDecomposition, Ideal, Strategy => ShimoyamaYokoyama) } {3 => (primaryDecomposition, Ideal, Strategy => Hybrid) } {4 => (primaryDecomposition, Ideal, Strategy => Monomial) } o1 : NumberedVerticalList |
This strategy only works for monomial ideals, and is automatically used for such ideals. See the chapter on "Monomial Ideals" in the Macaulay2 book.
i2 : Q = QQ[a..d] o2 = Q o2 : PolynomialRing |
i3 : I = ideal(a^2*b,a*c^2,b*d,c*d^2); o3 : Ideal of Q |
i4 : primaryDecomposition(I, Strategy => Monomial) 2 2 2 o4 = {ideal (d, a), ideal (c, b), ideal (b, a, d ), ideal (d, c , a ), ideal ------------------------------------------------------------------------ 2 2 (b, d , c )} o4 : List |
See Direct methods for primary decomposition by Eisenbud, Huneke, and Vasconcelos, Invent. Math. 110, 207-235 (1992).
i5 : primaryDecomposition(I, Strategy => EisenbudHunekeVasconcelos) 2 2 2 o5 = {ideal (d, a), ideal (c, b), ideal (b, a, d ), ideal (d, c , a ), ideal ------------------------------------------------------------------------ 2 2 (b, d , c )} o5 : List |
This strategy is the default for non-monomial ideals. See Localization and Primary Decomposition of Polynomial ideals by Shimoyama and Yokoyama, J. Symb. Comp. 22, 247-277 (1996).
i6 : primaryDecomposition(I, Strategy => ShimoyamaYokoyama) 2 2 2 o6 = {ideal (d, a), ideal (c, b), ideal (b, a, d ), ideal (d, c , a ), ideal ------------------------------------------------------------------------ 2 2 (b, d , c )} o6 : List |
Uses a hybrid of the Eisenbud-Huneke-Vasconcelos and Shimoyama-Yokoyama strategies. To use this strategy, the field Strategy should be a list of two integers, indicating the strategy to use for finding associated primes and localizing, respectively.
Warning: Setting the second parameter to 1 works only if the ideal is homogeneous and equidimensional.
i7 : Q = QQ[x,y]; |
i8 : I = intersect(ideal(x^2), ideal(y^2)) 2 2 o8 = ideal(x y ) o8 : Ideal of Q |
i9 : primaryDecomposition(I, Strategy => Hybrid{1,1}) 2 2 o9 = {ideal x , ideal y } o9 : List |
i10 : primaryDecomposition(I, Strategy => Hybrid{1,2}) 2 2 o10 = {ideal x , ideal y } o10 : List |
i11 : primaryDecomposition(I, Strategy => Hybrid{2,1}) 2 2 o11 = {ideal x , ideal y } o11 : List |
i12 : primaryDecomposition(I, Strategy => Hybrid{2,2}) 2 2 o12 = {ideal x , ideal y } o12 : List |