This is PseudomonomialPrimaryDecomposition.info, produced by Macaulay2, version 1.21

PseudomonomialPrimaryDecomposition -- primary decomposition of a square free pseudomonomial ideal
*************************************************************************************************

Description
===========

A pseudomonomial is a polynomial in K[x1,x2,...,xn] that can be written as a
product of factors of the form (xi-ai)^ni, where ai is 0 or 1.  The xi's in the
product should be distinct. A square free pseudomonomial ideal is an ideal
generated by pseudomonomials such that each ni=1.

This package finds the primary decomposition of square free pseudomonomial
ideals. It also determines if an ideal is a pseudomonomial ideal.

For example, x1^2*(x3-1) is a pseudomonomial, but not square free. The
polynomial x1*(x3-1) is a square free pseudomonomial. The ideal
ideal(x1*(x3-1),(x1-1)*(x2-1)*x4,x1*x2*x3,(x1-1)*x2*(x5-1)) is a square free
pseudomonomial ideal.

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/2[x1,x2,x3,x4,x5];                                               |
+-----------------------------------------------------------------------------+
|i2 : I = ideal(x1*(x3-1),(x1-1)*(x2-1)*x4,x1*x2*x3,(x1-1)*x2*(x5-1));        |
|                                                                             |
|o2 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i3 : isSquarefreePseudomonomialIdeal I                                       |
|                                                                             |
|o3 = true                                                                    |
+-----------------------------------------------------------------------------+
|i4 : C = primaryDecompositionPseudomonomial I                                |
|                                                                             |
|o4 = {ideal (x5 + 1, x1, x2 + 1), ideal (x2, x3 + 1, x1 + 1), ideal (x1, x4, |
|     ------------------------------------------------------------------------|
|     x2), ideal (x1, x4, x5 + 1), ideal (x3 + 1, x4, x2)}                    |
|                                                                             |
|o4 : List                                                                    |
+-----------------------------------------------------------------------------+
|i5 : intersect C == I                                                        |
|                                                                             |
|o5 = true                                                                    |
+-----------------------------------------------------------------------------+

Author
======

  * Alan A. Veliz-Cuba (see https://sites.google.com/site/alanvelizcuba/ )
    <avelizcuba1@udayton.edu>

Version
=======

This documentation describes version 0.3 of PseudomonomialPrimaryDecomposition.

Source code
===========

The source code from which this documentation is derived is in the file
PseudomonomialPrimaryDecomposition.m2 (see
common/share/Macaulay2/PseudomonomialPrimaryDecomposition.m2 ).

Exports
=======

  * Functions and commands
      * isSquarefreePseudomonomialIdeal,
        -- determine if an ideal is a square free pseudomonomial ideal
      * primaryDecompositionPseudomonomial
        -- primary decomposition of a
        square free pseudomonomial ideal
  * Methods
      * "isSquarefreePseudomonomialIdeal(Ideal)" -- see
        isSquarefreePseudomonomialIdeal, --
        determine if an ideal is a square free pseudomonomial ideal
      * "primaryDecompositionPseudomonomial(Ideal)" -- see
        primaryDecompositionPseudomonomial,
        -- primary decomposition of a square free pseudomonomial ideal

For the programmer
==================

The object PseudomonomialPrimaryDecomposition, is a package (Macaulay2Doc).

isSquarefreePseudomonomialIdeal -- determine if an ideal is a square free pseudomonomial ideal
**********************************************************************************************

Synopsis
========

  * Usage:
        isSquarefreePseudomonomialIdeal(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), an ideal
  * Outputs:
      * a Boolean value (Macaulay2Doc), true or false

Description
===========

An ideal is a square free pseudomonomial ideal if its generators are square
free pseudomonomials. A square free pseudomonomial is a polynomial of the form
P=z1*z2*...*zk such that zi is either xi or xi-1 and a variable can only appear
once in P. For example, x1*x3, x1*(x2-1)*(x3-1) are square free pseudomonomial
and x2*x3^2, x1*(x1-1)*(x3-1) are not.
+----------------------------------------+
|i1 : R=ZZ/2[x1,x2,x3,x4,x5];            |
+----------------------------------------+
|i2 : I = ideal(x1*x2,x3*x4,x5);         |
|                                        |
|o2 : Ideal of R                         |
+----------------------------------------+
|i3 : isSquarefreePseudomonomialIdeal(I) |
|                                        |
|o3 = true                               |
+----------------------------------------+
+--------------------------------------------------------+
|i4 : R=ZZ/2[x1,x2];                                     |
+--------------------------------------------------------+
|i5 : I = ideal(x1*(x2-1),(x1-1)*(x2-1),x1*x2,(x1-1)*x2);|
|                                                        |
|o5 : Ideal of R                                         |
+--------------------------------------------------------+
|i6 : isSquarefreePseudomonomialIdeal(I)                 |
|                                                        |
|o6 = true                                               |
+--------------------------------------------------------+
+----------------------------------------+
|i7 : R=ZZ/3[x1,x2];                     |
+----------------------------------------+
|i8 : I = ideal(x1,x2-1);                |
|                                        |
|o8 : Ideal of R                         |
+----------------------------------------+
|i9 : isSquarefreePseudomonomialIdeal(I) |
|                                        |
|o9 = true                               |
+----------------------------------------+
+--------------------------------------------+
|i10 : R=QQ[x1,x2,x3,x4,x5];                 |
+--------------------------------------------+
|i11 : I = ideal(x1*(x1-1),(x3-1)*x4,x5);    |
|                                            |
|o11 : Ideal of R                            |
+--------------------------------------------+
|i12 : not isSquarefreePseudomonomialIdeal(I)|
|                                            |
|o12 = true                                  |
+--------------------------------------------+
+------------------------------------------+
|i13 : R=QQ[x1,x2,x3,x4,x5];               |
+------------------------------------------+
|i14 : I = ideal(x1*(x5-1),(x3-1)*x4^2,x5);|
|                                          |
|o14 : Ideal of R                          |
+------------------------------------------+
|i15 : isSquarefreePseudomonomialIdeal(I)  |
|                                          |
|o15 = false                               |
+------------------------------------------+

Caveat
======

The algorithm disregards the base field. So, ideal(-x1) is a square free
pseudomonomial ideal in F[x1] for F=ZZ,ZZ/p,QQ, whereas ideal(-x1) is not a
monomial ideal when F=ZZ.

See also
========

  * monomials (Macaulay2Doc) -- matrix of monomials in a ring
    element or matrix
  * monomialIdeal (Macaulay2Doc) -- make a monomial ideal

Ways to use isSquarefreePseudomonomialIdeal :
=============================================

  * "isSquarefreePseudomonomialIdeal(Ideal)"

For the programmer
==================

The object isSquarefreePseudomonomialIdeal,
is a method function (Macaulay2Doc).

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

Synopsis
========

  * Usage:
        primaryDecompositionPseudomonomial(I)
  * Inputs:
      * I, an ideal (Macaulay2Doc), a square free pseudomonomial
        ideal
  * Outputs:
      * L, a list (Macaulay2Doc), 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

See also
========

  * primaryDecomposition (missing documentation)

Ways to use primaryDecompositionPseudomonomial :
================================================

  * "primaryDecompositionPseudomonomial(Ideal)"

For the programmer
==================

The object primaryDecompositionPseudomonomial,
is a method function (Macaulay2Doc).