# primary decomposition

## Introduction

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).

## An 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 2 o3 = {ideal (d , a*d, a*b - c*d, a ), 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 ), 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. Each entry in the list given by associatedPrimes is the radical of the respective entry in the list given by primary decomposition.