This page describes the Magma implementation of the algorithms described in [2]. Also included is an implementation of algorithm ZPDF in [1].
The implementation is available here: primarydecomposition.tgz.
To use the algorithm, after starting magma, type
> Attach("primarydecomposition.magma");
This provides three methods:
radical (Algorithm 4.8 in [2]),
primaryDecompositionInfinite
(Algorithm 5.16 in [2]),
and primaryDecomposition
(Algorithm 6.5 in [2]).
To use the algorithm ZPDF, after starting magma, type
> Attach("primarydecomposition.magma");
> Attach("gtz.magma");
This provides the additional method
primaryDecompositionGTZ
(an implementation of Algorithm ZPDF in [1]).
All four methods take as argument a zero-dimensional ideal I with computed Gröbner basis. The method radical computes the radical of I, and the other methods compute the primary decomposition of I.
> R< x, y > := PolynomialRing(Rationals(), 2, "grevlex");
> I := ideal< R | (x^2 + 1)^2, y^2 + 1 >;
> Groebner(I);
> radical(I);
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 + 1,
y^2 + 1
]
> primaryDecomposition(I);
[
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 - 2*x*y - 1,
y^2 + 1
],
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 + 2*x*y - 1,
y^2 + 1
]
]
> primaryDecompositionInfinite(I);
[
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 + 2*x*y - 1,
y^2 + 1
],
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 - 2*x*y - 1,
y^2 + 1
]
]
> primaryDecompositionGTZ(I);
[
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 + 2*x*y - 1,
y^2 + 1
],
Ideal of Polynomial ring of rank 2 over Rational Field
Order: Graded Reverse Lexicographical
Variables: x, y
Inhomogeneous, Dimension 0
Groebner basis:
[
x^2 - 2*x*y - 1,
y^2 + 1
]
]
finite1_ilias13.magma finite2_Reimer_5a.magma finite3_Steidel_1.magma rationals1.magma rationals2.magma rationals3.magma functionfield1.magma functionfield2.magma functionfield3.magmaAfter attaching the packages primarydecomposition.magma and gtz.magma as described above, the benchmarks can be run as follows.
> load "finite1_ilias13.magma"; Loading "finite1_ilias13.magma" > time pd := primaryDecomposition(I); Time: 2.160 > time pdgtz := primaryDecompositionGTZ(I); Time: 3.400
| [1] |
P. Gianni, B. Trager, and G. Zacharias Gröbner bases and primary decomposition of polynomial ideals J. Symbolic Comput. 6 (1988), no. 2-3, 139-167. |
| [2] |
S. Jambor Primary decomposition of zero-dimensional ideals over arbitrary fields Preprint (2014). |