Am 12.04.2010 um 04:09 schrieb 君:

> If there is an noncommutative associative algebra, presented as 
> A=K<X|R>,where X is the generating set, R is the relations set.
> My question is: How to use GAP to find the Grobner basis for A?
> P.S.:Can GAP find the Grobner shirshov basis for A,too?
> I hope to get some help from experts.

The GBNP package can perform Gröbner basis computations in free associative 
algebras. First you'll have to install GBNP.

load GBNP and enter the relations. Here we assume two generators a and b, and 
we work over the rationals.

gap> LoadPackage("gbnp");
true
gap> A:=FreeAssociativeAlgebraWithOne(Rationals, "a", "b");
<algebra-with-one over Rationals, with 2 generators>
gap> a:=A.1;;b:=A.2;;e:=One(A);;
gap> rels := [ b*a^2*b-b^2, b^2-e, (a*b)^12-e, (a*b)^8-e ];;

You can now compute a Gröbner basis for the ideal generated by these relation:

gap> GBR:=SGrobner(GP2NPList(rels));;
gap> PrintNPList(GBR);
 a^2 - 1 
 b^2 - 1 
 baba - abab 

Now you can compute the dimension of A, or multiply elements in it

gap> DimQA(GBR,2);
8
gap> PrintNP(MulQA(GP2NP(a), GP2NP(b), GBR));
 ab 
gap> PrintNP(MulQA(GP2NP(a*b), GP2NP(a*b), GBR));
 abab 
gap> PrintNP(MulQA(GP2NP(a*b*a), GP2NP(a*b*a), GBR));
 1 

As far as I know, GBNP does not yet provide a nice interface to turn the 
quotient algebra into a "proper" GAP object / algebra, but you can ask for 
matrix generators as a substitute (assuming its dimension is not too big):

gap> B := BaseQA(GBR,2,0);;
gap> mats := MatricesQA(2,B,GBR);;
gap> Q:=AlgebraWithOne(Rationals, mats);
<algebra-with-one over Rationals, with 2 generators>
gap> Dimension(Q);
8



Hope that helps,
Max
_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to