# primaryDecompositionPseudomonomial -- primary decomposition of a square free pseudomonomial ideal

## Synopsis

• Usage:
primaryDecompositionPseudomonomial(I)
• Inputs:
• I, an ideal, a square free pseudomonomial ideal
• Outputs:
• L, a list, list L={P1,P2,...,Pk} of primary ideals with intersection equal to I

## Description

The algorithm is implemented bitwise (using Macaulay2 bitwise operations), which makes calculations faster. Examples:
 i1 : R=ZZ/2[x1,x2,x3,x4,x5]; i2 : I = ideal(x1*x2,x3*x4,x5); o2 : Ideal of R i3 : primaryDecompositionPseudomonomial(I) o3 = {ideal (x5, x1, x3), ideal (x5, x1, x4), ideal (x5, x2, x3), ideal (x5, ------------------------------------------------------------------------ x2, x4)} o3 : List
 i4 : R=QQ[x1,x2,x3,x4,x5]; i5 : I = ideal(x1*(x2-1),(x3-1)*x4,x5); o5 : Ideal of R i6 : primaryDecompositionPseudomonomial(I) o6 = {ideal (x5, x1, x3 - 1), ideal (x5, x1, x4), ideal (x5, x2 - 1, x3 - 1), ------------------------------------------------------------------------ ideal (x5, x2 - 1, x4)} o6 : List
 i7 : R=ZZ/2[x1,x2]; i8 : I = ideal(x1*(x2-1),(x1-1)*(x2-1),x1*x2,(x1-1)*x2); o8 : Ideal of R i9 : primaryDecompositionPseudomonomial(I) o9 = {} o9 : List
 i10 : R=QQ[x1,x2,x3,x4,x5]; i11 : I = ideal(x5,x1*(x3-1)*(x5-1)); o11 : Ideal of R i12 : primaryDecompositionPseudomonomial(I) o12 = {ideal (x5, x1), ideal (x5, x3 - 1)} o12 : List
 i13 : R=ZZ/3[x1,x2]; i14 : I = ideal(x5,(x3-1)); o14 : Ideal of QQ[x1, x2, x3, x4, x5] i15 : primaryDecompositionPseudomonomial(I) o15 = {ideal (x5, x3 - 1)} o15 : List

## Caveat

The algorithm finds a decomposition even if the base field is not QQ or ZZ/p