gap> ######################### BEGIN COPYRIGHT MESSAGE ######################### GBNP - computing Gröbner bases of noncommutative polynomials Copyright 2001-2010 by Arjeh M. Cohen, Dié A.H. Gijsbers, Jan Willem Knopper, Chris Krook. Address: Discrete Algebra and Geometry (DAM) group at the Department of Mathematics and Computer Science of Eindhoven University of Technology.

For acknowledgements see the manual. The manual can be found in several formats in the doc subdirectory of the GBNP distribution. The acknowledgements formatted as text can be found in the file chap0.txt.

GBNP is free software; you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation (FSF); either version 2.1 of the License, or (at your option) any later version. For details, see the file 'LGPL' in the doc subdirectory of the GBNP distribution or see the FSF's own site: http://www.gnu.org/licenses/lgpl.html gap> ########################## END COPYRIGHT MESSAGE ##########################

gap> ### filename = "example23.g" gap> ### author Knopper

gap> ### THIS IS A GAP PACKAGE FOR COMPUTING NON-COMMUTATIVE GROBNER BASES

<#GAPDoc Label="Example23">
Generalized Temperley-Lieb algebras
This example shows how the dimension of a Generalized Temperley-Lieb Algebra of type A, D, or E can be calculated. For \textrm{A}_{n-1} this is the usual Temperley-Lieb Algebra on n strands with dimension \textrm{dim TL}(A_{n-1})={{2n \choose n}}/{(n+1)}. For more information see .

First load the package and set the standard infolevel to 0 and the time infolevel to 1 (for more information about timing; see Chapter ).

gap> LoadPackage("GBNP","0",false);; gap> SetInfoLevel(InfoGBNP,0); gap> SetInfoLevel(InfoGBNPTime,1);

The relations are generated automatically from the Coxeter diagram. This example can be easily adapted by specifying the number of points and the set of edges describing another Coxeter diagram. First enter the number of points, numpoints.

gap> numpoints:=8; 8

Now define some edges describing the diagrams of \textrm{E}_n, (these can be easily extended). In this example the dimension of the Generalized Temperley-Lieb algebra of type \textrm{E}_8 will be calculated. For \textrm{A}_{1\ldots 10} the command

edges:=[[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10]];

can be used. For \textrm{D}_{1\ldots 10} the command

edges:=[[1,3],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10]];
can

be used.

gap> edges:=[[1,3],[2,4],[3,4],[4,5],[5,6],[6,7],[7,8]]; # for E6..8 [ [ 1, 3 ], [ 2, 4 ], [ 3, 4 ], [ 4, 5 ], [ 5, 6 ], [ 6, 7 ], [ 7, 8 ] ]

Now enter the relations as GAP polynomials. First a free associative algebra with identity element is created over the Rationals (see also ). For convenience the generators are stored in gens.

gap> A:=FreeAssociativeAlgebraWithOne(Rationals,numpoints,"e");; gap> e := GeneratorsOfAlgebraWithOne(A); [ (1)*e.1, (1)*e.2, (1)*e.3, (1)*e.4, (1)*e.5, (1)*e.6, (1)*e.7, (1)*e.8 ]

It is possible to print symbols like they are printed in the algebra A with the function :

gap> GBNP.ConfigPrint(A);

Now the relations are generated automatically. For this we need to make sure the edges are sorted and converted to a set.

gap> edges:=Set(edges, x->SortedList(x)); [ [ 1, 3 ], [ 2, 4 ], [ 3, 4 ], [ 4, 5 ], [ 5, 6 ], [ 6, 7 ], [ 7, 8 ] ]

Now the relations can be generated. The relations are e_i*e_i=e_i, for all i and e_i*e_j*e_i=e_i for all i,j that are connected in the Coxeter diagram and e_i*e_j=e_j*e_i for all i, j that are not connected in the Coxeter diagram.

gap> rels:=[];; gap> for i in [1..numpoints] do > for j in [1..numpoints] do > if (i=j) then > # if i=j then add e.i*e.i=e.i > Add(rels, e[i]*e[i]-e[i]); > elif ([i,j] in edges) or ([j,i] in edges) then > # if {i,j} is an edge then add e.i*e.j*e.i=e.i > Add(rels, e[i]*e[j]*e[i]- e[i]); > else > # if {i,j} is not an edge then add e.i*e.j=e.j*e.i > # (note: this causes double rules, but that's ok) > Add(rels, e[i]*e[j]- e[j]*e[i]); > fi; > od; > od;

Then the relations are converted into NP format (see ) after which the function is called to calculate a Gröbner basis.

gap> relsNP:=GP2NPList(rels);; gap> GB:=SGrobner(relsNP);; #I The computation took 184 msecs.

It is now possible to calculate the dimension of the quotient algebra with the function . This function has as arguments the Gröbner basis GB and the number of generators of the algebra (here this is numpoints). To get the full basis the function can be used.

gap> DimQA(GB,numpoints); 10846
<#/GAPDoc>