| 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 p = x*(x*s)*x + s^2*x; p;
==> x3s+x2s+xs2+2s2
// p is of the form q(X)1, a pure tensor indeed:
isPureTensor(p);
==> x3s*gen(1)+x2s*gen(1)+xs2*gen(1)+2s2*gen(1)+gen(2)
// v = transpose( x3s+x2s+xs2+2s2 1 ) i.e. p = x3s+x2s+xs2+2s2 (X) 1
poly g = S*X+ x*s*X+ S^2*x;
g;
==> xsX+xS2+SX
isPureTensor(g); // indeed g is not a pure tensor
==> 0
poly d = x*X+s*X+x*S*X+s*S*X;d;
==> xSX+xX+sSX+sX
isPureTensor(d); // d is a pure tensor indeed
==> x*gen(1)+s*gen(1)+SX*gen(2)+X*gen(2)
// v = transpose( x+s S*X+X ) i.e. d = x+s (X) s*x+x
// remember that * denotes to the opposite mulitiplication s*x = xs in R.
|