#### D.4.18.16 primdecMon

Procedure from library `monomialideal.lib` (see monomialideal_lib).

Usage:
  primdecMon (I[,alg]); I ideal, alg string

Return:
  list, the components in a minimal primary decomposition of I. (returns -1 if I is not a monomial ideal).

Assume:
  I is a monomial ideal of the basering k[x(1)..x(n)].

Note:
  This procedure returns a minimal primary decomposition of I. One may call the procedure with different algorithms using the optional argument 'alg':
  - the direct method for a primary decomposition following Vasconcelos' book (alg=vp),
  - from the irreducible decomposition obtained via the direct method following Vasconcelos' book (alg=vi),
  - from the irreducible decomposition obtained via the
  Alexander dual and using doble dual (alg=add),
  - from the irreducible decomposition obtained via the
  Alexander dual and quotients following E. Miller (alg=ad), - from the irreducible decomposition obtained
  via ........ (alg=for),
  - from the irreducible decomposition obtained via the Scarf complex following Milowski (alg=mil),
  - from the irreducible decomposition obtained using the label algorithm of Roune (alg=lr),
  - from the irreducible decomposition obtained using the algorithm of Gao-Zhu (alg=gz),
  - from the irreducible decomposition obtained using the slice algorithm of Roune (alg=sr).

Example:

    LIB "monomialideal.lib";
    ring R = 0,(w,x,y,z),Dp;
    ideal I = w^3*x*y,w*x*y*z,x^2*y^2*z^2,x^2*z^4,y^3*z;
    // Vasconcelos para primaria
    primdecMon(I,"vp");
    ==> [1]:
    ==>    _[1]=x2
    ==>    _[2]=y3
    ==>    _[3]=wxy
    ==>    _[4]=w3
    ==> [2]:
    ==>    _[1]=xy
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [3]:
    ==>    _[1]=z
    ==>    _[2]=x
    ==> [4]:
    ==>    _[1]=y3
    ==>    _[2]=wyz
    ==>    _[3]=w3
    ==>    _[4]=z4
    ==>    _[5]=y2z2
    ==> [5]:
    ==>    _[1]=y
    ==>    _[2]=z4
    ==> [6]:
    ==>    _[1]=z
    ==>    _[2]=w3
    // Alexander dual
    primdecMon(I,"add");
    ==> [1]:
    ==>    _[1]=y
    ==>    _[2]=z4
    ==> [2]:
    ==>    _[1]=xy
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [3]:
    ==>    _[1]=w3
    ==>    _[2]=z
    ==> [4]:
    ==>    _[1]=w
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [5]:
    ==>    _[1]=x
    ==>    _[2]=z
    ==> [6]:
    ==>    _[1]=w
    ==>    _[2]=y3
    ==>    _[3]=z4
    ==>    _[4]=y2z2
    // label algorithm
    primdecMon(I,"lr");
    ==> [1]:
    ==>    _[1]=w
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [2]:
    ==>    _[1]=w
    ==>    _[2]=y3
    ==>    _[3]=z4
    ==>    _[4]=y2z2
    ==> [3]:
    ==>    _[1]=w3
    ==>    _[2]=z
    ==> [4]:
    ==>    _[1]=x
    ==>    _[2]=z
    ==> [5]:
    ==>    _[1]=xy
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [6]:
    ==>    _[1]=y
    ==>    _[2]=z4
    //slice algorithm
    primdecMon(I,"sr");
    ==> [1]:
    ==>    _[1]=w
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [2]:
    ==>    _[1]=w
    ==>    _[2]=y3
    ==>    _[3]=z4
    ==>    _[4]=y2z2
    ==> [3]:
    ==>    _[1]=w3
    ==>    _[2]=z
    ==> [4]:
    ==>    _[1]=x
    ==>    _[2]=z
    ==> [5]:
    ==>    _[1]=xy
    ==>    _[2]=x2
    ==>    _[3]=y3
    ==> [6]:
    ==>    _[1]=y
    ==>    _[2]=z4

User manual for Singular version 4.4.1, 2025, generated by texi2html.