Singular

D.4.15.9 splitting

Procedure from library `mprimdec.lib` (see mprimdec_lib).

Usage:
splitting(N[,check[, ann]]); modul N, module check, ideal ann

Return:
(l, check) list l, module check
the elements of l consists of quadruples, where
[1] is of type module, [2], [3] and [4] are of type ideal, s.th. the intersection of the modules is equal to the zero-dimensional module N, furthermore l[j][3]=annil(l[j][1]) and l[j][4] contains internal ideal data;
if l[j][2]!=0 then the module l[j][1] is primary
with associated prime l[j][2], and check=intersect(check, l[j][1]) is computed

Note:
if the parameter check is given, only components not containing check are computed; if ann is given, ann is used instead of annil(N)

Example:
 ```LIB "mprimdec.lib"; ring r=0,z,lp; module N=z*gen(1), (z+1)*gen(2); N=std(N); list l; module check; (l, check)=splitting(N); l; ==> [1]: ==> [1]: ==> _[1]=gen(2) ==> _[2]=z*gen(1) ==> [2]: ==> _[1]=z ==> [3]: ==> _[1]=z ==> [4]: ==> _[1]=z ==> [2]: ==> [1]: ==> _[1]=gen(1) ==> _[2]=z*gen(2)+gen(2) ==> [2]: ==> _[1]=z+1 ==> [3]: ==> _[1]=z+1 ==> [4]: ==> _[1]=z+1 check; ==> check[1]=z*gen(2)+gen(2) ==> check[2]=z*gen(1) ```