|
D.4.20.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)
|
|