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 = "example14.g" gap> ### authors Cohen & Gijsbers & Krook gap> ### This example was added by Chris Krook. gap> gap> ### THIS IS A GAP PACKAGE GBNP gap> ### FOR COMPUTING WITH NON-COMMUTATIVE POLYNOMIALS gap> ### ADD-ON: STUDY GROWTH OF FACTOR ALGEBRA

gap> ### $Id: example14.g,v 1.6 2004/04/16 14:37:38 jwk Exp $

<#GAPDoc Label="Example14">
Preprocessing for Weyl group computations
This example extends Example with the following action: after the Gröbner basis computation, we first check if the quotient algebra is finite dimensional or infinite dimensional before we possibly try to compute that dimension. Preprocessing of the set of leading terms of the Gröbner basis is used to speed up the check. The functions and are used for the computations. Even without preprocessing this already goes fast. Still, preprocessing can speed up more involved cases. For instance, after adapting this example to run for E7, we found that preprocessing speeds up the computation from 400 secs to about 40 secs. (Be aware that Gröbner basis computation will take a while for E7.)

More information about the preprocessing can be found in the preprint The dimensionality of quotient algebras which is part of the documentation.

Note: there is no information on the amount of preprocessing which is optimal, but in general for big examples, even full preprocessing is better than using no preprocessing at all.

Note: Example also determines if the quotient algebra appearing here is finite or infinite dimensional but does not use preprocessing.

First load the package and set the standard infolevel to 0 and the time infolevel to 2 (for more information about the info level, see Chapter ).

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

Then input the relations in NP format (see Section ). They will be assigned to KI.

gap> k1 := [[[1,3,1],[3,1,3]],[1,-1]];; gap> k2 := [[[4,3,4],[3,4,3]],[1,-1]];; gap> k3 := [[[4,2,4],[2,4,2]],[1,-1]];; gap> k4 := [[[4,5,4],[5,4,5]],[1,-1]];; gap> k5 := [[[6,5,6],[5,6,5]],[1,-1]];; gap> k6 := [[[1,2],[2,1]],[1,-1]];; gap> k7 := [[[1,4],[4,1]],[1,-1]];; gap> k8 := [[[1,5],[5,1]],[1,-1]];; gap> k9 := [[[1,6],[6,1]],[1,-1]];; gap> k10 := [[[2,3],[3,2]],[1,-1]];; gap> k11 := [[[2,5],[5,2]],[1,-1]];; gap> k12 := [[[2,6],[6,2]],[1,-1]];; gap> k13 := [[[3,5],[5,3]],[1,-1]];; gap> k14 := [[[3,6],[6,3]],[1,-1]];; gap> k15 := [[[4,6],[6,4]],[1,-1]];; gap> k16 := [[[1,1],[]],[1,-1]];; gap> k17 := [[[2,2],[]],[1,-1]];; gap> k18 := [[[3,3],[]],[1,-1]];; gap> k19 := [[[4,4],[]],[1,-1]];; gap> k20 := [[[5,5],[]],[1,-1]];; gap> k21 := [[[6,6],[]],[1,-1]];; gap> KI := [k1,k2,k3,k4,k5,k6,k7,k8,k9,k10, > k11,k12,k13,k14,k15,k16,k17,k18,k19,k20,k21 > ];;

The Gröbner basis can now be calculated with :

gap> GB := SGrobner(KI);; #I Time needed to clean G :0 #I The computation took 104 msecs.

Check the dimensionality of the quotient algebra. We will check whether it is finite dimensional or infinite dimensional. In case of finite dimensionality we can compute this dimension.

The function , which is used to check finite dimensionality has as first argument the list of leading monomials of a Gröbner basis and as second argument the number of symbols. The monomials can be calculated with . They then will be preprocessed using 4 recursions. If you want full preprocessing, use 0 instead of 4 as a parameter for the number of recursions.

gap> L:=LMonsNP(GB);; gap> L:=PreprocessAnalysisQA(L,6,4);; gap> time; 4 gap> fd:=FinCheckQA(L,6); true gap> time; 4

If a quotient algebra is finite dimensional, the dimension can be calculated with , the arguments are the Gröbner basis GB and the number of symbols 6. Since is set to 2, we get timing information from :

gap> dim := DimQA(GB,6); #I The computation took 176 msecs. 51840
<#/GAPDoc>