Home Online Manual
Back: liftenvelope
Forward: isPureTensor
FastForward: bfun_lib
Up: bimodules_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document CompDecomp
Procedure from library bimodules.lib (see bimodules_lib).

CompDecomp(p); p poly

This procedure only works if the basering is an enveloping algebra A^{env} of a (non-commutative) ring A. Thus also the polynomial in the argument has to be in A^{env}.

Returns an ideal I in A^{env}, where the sum of all terms of the argument with the same right side (of the tensor summands) are stored as a generator of I.
Let b != c, then for p = (a (X) b) + (c (X) b) + (a (X) c) the ideal I := CompDecomp(p) is given by: I[1] = (a (X) b) + (c (X) b); I[2] = a (X) c.

By decomposing the polynomial we can easily check whether the given polynomial is a pure tensor.

LIB "bimodules.lib";
ring r = 0,(x,s),dp;
def R = nc_algebra(1,s); setring R; //1st shift algebra
def Re = envelope(R); setring Re; //basering is now R^{env} = R (X) R^{opp}
poly f = X*S*x^2+5*x*S*X+S*X; f;
==> x2SX+x2S+5xSX+SX
ideal I = CompDecomp(f);
print(matrix(I)); // what means that f = (x2+5x+1)*SX + x2*S
==> x2SX+5xSX+SX,x2S
poly p = x*S+X^2*S+2*s+x*X^2*s+5*x*s; p;
==> xsX2+5xs+xS+2s+SX2+2SX+S
ideal Q = CompDecomp(p);
==> xsX2,5xs+2s,xS+S,SX2,2SX