up previous next
 PrimaryDecompositionCore0

primary decomposition of a 0-dimensional ideal

 Syntax
 ```PrimaryDecompositionCore0(I: IDEAL): RECORD PrimaryDecompositionCore0(I: IDEAL, opt f: RINGELEM): RECORD```

 Description
This function is the core partial step for the primary decomposition of a 0-dimensional ideal I : see PrimaryDecomposition0 for the certified and reduced result.

The result is a record containing a (partial) decomposition and a BOOL stating whether or not the decomposition is certified to be the primary decomposition.

The second optional argument is for specifying the splitting, the polynomial whose minimal polynomial (see MinPolyQuot ) is used for splitting I into components. See the paper Abbott, Bigatti, Palezzato, Robbiano Minimal polynomials and applications (work in progress).

Implementation by Elisa Palezzato.

NOTE: this function was called PrimaryDecomposition0 up to version CoCoA-5.1.4.

 Example
 ```/**/ use R ::= QQ[x,y,z]; /**/ PD := PrimaryDecompositionCore0(ideal(x-z, y^2-1, z^2)); /**/ indent(PD); -- decomposition is correct, but not certified record[ IsCertified := false, PrDec_I := [ ideal(16*y^2 +40*y*z +25*z^2 +32*y +40*z +16, x -z, y^2 -1, z^2), ideal(16*y^2 +40*y*z +25*z^2 -32*y -40*z +16, x -z, y^2 -1, z^2) ] ] /**/ PrimaryDecomposition0(ideal(x-z, y^2-1, z^2)); [ideal(y +1, x -z, z^2), ideal(y -1, x -z, z^2)] /**/ use ZZ/(2)[x,y,z]; /**/ PD := PrimaryDecompositionCore0(ideal(x-z, y^2-1, z^2)); /**/ indent(PD); record[ IsCertified := true, PrDec_I := [ideal(x +z, y^2 +1, z^2)] ] ```