Procedure from library bimodules.lib (see bimodules_lib).
Usage:
isTwoSidedGB(I); I ideal
Return:
Returns 0 if the generators of a given ideal are not two-sided, 1 if they are.\\
Note:
This procedure should only be used for non-commutative rings, as every element is two-sided in a commutative ring.
Purpose:
Auxiliary procedure for diagonal forms. Let R be a non-commutative ring (e.g. G-algebra), and p in R, this program checks whether p is two-sided i.e. Rp = pR.
Example:
LIB "bimodules.lib";
ring r = 0,(x,s),dp;
def R = nc_algebra(1,s); setring R; //1st shift algebra
ideal I = s^2, x*s, s^2 + 3*x*s;
isTwoSidedGB(I); // I is two-sided
==> 1
ideal J = s^2+x;
isTwoSidedGB(J); // J is not two-sided; twostd(J) = s,x;
==> 0