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