
7.7.16.0. findimAlgebra
Procedure from library nctools.lib (see nctools_lib).
 Usage:
 findimAlgebra(M,[r]); M a matrix, r an optional ring
 Return:
 ring
 Purpose:
 define a finite dimensional algebra structure on a ring
 Note:
 the matrix M is used to define the relations x(i)*x(j) = M[i,j] in the
basering (by default) or in the optional ring r.
The procedure equips the ring with the noncommutative structure.
The procedure exports the ideal (not a twosided Groebner basis!), called fdQuot , for further qring definition.
 Theory:
 finite dimensional algebra can be represented as a factor algebra
of a Galgebra modulo certain twosided ideal. The relations of a f.d. algebra are thus naturally divided into two groups: firstly, the relations
on the variables of the ring, making it into Galgebra and the rest of them, which constitute the ideal which will be factored out.
Example:
 LIB "nctools.lib";
ring r=(0,a,b),(x(1..3)),dp;
matrix S[3][3];
S[2,3]=a*x(1); S[3,2]=b*x(1);
def A=findimAlgebra(S); setring A;
fdQuot = twostd(fdQuot);
qring Qr = fdQuot;
Qr;
==> // coefficients: QQ(a, b)
==> // number of vars : 3
==> // block 1 : ordering dp
==> // : names x(1) x(2) x(3)
==> // block 2 : ordering C
==> // noncommutative relations:
==> // x(3)x(2)=(b)/(a)*x(2)*x(3)
==> // quotient ring from ideal
==> _[1]=x(3)^2
==> _[2]=x(2)*x(3)+(a)*x(1)
==> _[3]=x(1)*x(3)
==> _[4]=x(2)^2
==> _[5]=x(1)*x(2)
==> _[6]=x(1)^2

