Home Online Manual
Top
Back: dimMon
Forward: primdecMon
FastBack:
FastForward:
Up: monomialideal_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.4.19.15 irreddecMon

Procedure from library monomialideal.lib (see monomialideal_lib).

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

Return:
list, the irreducible components of the monomial ideal 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 procesure returns the irreducible decomposition of I. One may call the procedure with different algorithms using the optional argument 'alg':
- the direct method following Vasconcelos' book (alg=vas) - via the Alexander dual and using doble dual (alg=add), - via the Alexander dual and quotients following E. Miller (alg=ad),
- the formula of irreducible components (alg=for),
- via the Scarf complex following Milowski (alg=mil),
- using the label algorithm of Roune (alg=lr),
- using the algorithm of Gao-Zhu (alg=gz).
- 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
irreddecMon (I,"vas");
==> [1]:
==>    _[1]=y
==>    _[2]=x2
==> [2]:
==>    _[1]=w
==>    _[2]=z2
==>    _[3]=y3
==> [3]:
==>    _[1]=y
==>    _[2]=z4
==> [4]:
==>    _[1]=w
==>    _[2]=x2
==>    _[3]=y3
==> [5]:
==>    _[1]=w
==>    _[2]=y2
==>    _[3]=z4
==> [6]:
==>    _[1]=z
==>    _[2]=w3
==> [7]:
==>    _[1]=z
==>    _[2]=x
==> [8]:
==>    _[1]=x
==>    _[2]=y3
// Alexander Dual
irreddecMon (I,"ad");
==> [1]:
==>    _[1]=w
==>    _[2]=y3
==>    _[3]=z2
==> [2]:
==>    _[1]=w
==>    _[2]=y2
==>    _[3]=z4
==> [3]:
==>    _[1]=x
==>    _[2]=z
==> [4]:
==>    _[1]=w
==>    _[2]=x2
==>    _[3]=y3
==> [5]:
==>    _[1]=w3
==>    _[2]=z
==> [6]:
==>    _[1]=x2
==>    _[2]=y
==> [7]:
==>    _[1]=y
==>    _[2]=z4
==> [8]:
==>    _[1]=x
==>    _[2]=y3
// Scarf Complex
irreddecMon (I,"mil");
==> [1]:
==>    _[1]=y
==>    _[2]=z4
==> [2]:
==>    _[1]=w3
==>    _[2]=z
==> [3]:
==>    _[1]=w
==>    _[2]=y3
==>    _[3]=z2
==> [4]:
==>    _[1]=w
==>    _[2]=y2
==>    _[3]=z4
==> [5]:
==>    _[1]=w
==>    _[2]=x2
==>    _[3]=y3
==> [6]:
==>    _[1]=x
==>    _[2]=y3
==> [7]:
==>    _[1]=x2
==>    _[2]=y
==> [8]:
==>    _[1]=x
==>    _[2]=z
// slice algorithm
irreddecMon(I,"sr");
==> [1]:
==>    _[1]=y
==>    _[2]=z4
==> [2]:
==>    _[1]=x2
==>    _[2]=y
==> [3]:
==>    _[1]=x
==>    _[2]=z
==> [4]:
==>    _[1]=x
==>    _[2]=y3
==> [5]:
==>    _[1]=w3
==>    _[2]=z
==> [6]:
==>    _[1]=w
==>    _[2]=y3
==>    _[3]=z2
==> [7]:
==>    _[1]=w
==>    _[2]=y2
==>    _[3]=z4
==> [8]:
==>    _[1]=w
==>    _[2]=x2
==>    _[3]=y3