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 = "example13.g"
gap> ### authors Cohen & Gijsbers & Krook
gap> ### This example was added by Chris Krook.

gap> ### THIS IS A GAP PACKAGE GBNP
gap> ### FOR COMPUTING WITH NON-COMMUTATIVE POLYNOMIALS
gap> ### ADD-ON: STUDY GROWTH OF FACTOR ALGEBRA
gap> ### $Id: example13.g,v 1.8 2004/04/16 14:37:38 jwk Exp $

<#GAPDoc Label="Example13">
<Section Label="Example13"><Heading> Finiteness of the Weyl group of type E<M>_6</M></Heading>
<P/>
This example extends <Ref Sect="Example03"/>, which
computes the order of the Weyl group of type E<M>_6</M>.
<P/>
Here, before the dimension is calculated, it is checked whether the quotient
algebra is finite dimensional or infinite dimensional. The function <Ref
Func="FinCheckQA" Style="Text"/> is used for this computation. For the use
of <Ref Func="PreprocessAnalysisQA" Style="Text"/> to speed up the check,
see Example <Ref Sect="Example14"/>.
<P/>
First load the package and set the standard infolevel <Ref
InfoClass="InfoGBNP" Style="Text"/> to 1 and the time infolevel <Ref
Func="InfoGBNPTime" Style="Text"/> to 2 (for more information about the info
level, see Chapter <Ref Chap="Info"/>).

<Listing><![CDATA[
gap> LoadPackage("GBNP","0",false);;
gap> SetInfoLevel(InfoGBNP,1);
gap> SetInfoLevel(InfoGBNPTime,2);
]]></Listing>

Then input the relations in NP format (see Section <Ref Sect="NP"/>). They
will be assigned to <C>KI</C>. These relations are the same as those in
Example 3.

<Listing><![CDATA[
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
>       ];;
]]></Listing>

The Gröbner basis can now be calculated with 
<Ref Func="SGrobner" Style="Text"/>:

<Listing><![CDATA[
gap> GB := SGrobner(KI);;
#I  number of entered polynomials is 21
#I  number of polynomials after reduction is 21
#I  End of phase I
#I  End of phase II
#I  End of phase III
#I  Time needed to clean G :0
#I  End of phase IV
#I  The computation took 96 msecs.
]]></Listing>

We will check whether the quotient algebra is finite dimensional or infinite
dimensional. 
The function <Ref Func="FinCheckQA" Style="Text"/> exists for this purpose.
Its first argument is the list
of leading monomials of a
Gröbner basis and its second argument the number of symbols. The leading
monomials can be calculated with <Ref Func="LMonsNP" Style="Text"/>.

<Listing><![CDATA[
gap> L:=LMonsNP(GB);;
gap> FinCheckQA(L,6);
true
gap> time;
60
]]></Listing>

If a quotient algebra is finite dimensional, the dimension can be calculated
with <Ref Func="DimQA" Style="Text"/>, the arguments are the Gröbner basis 
<C>GB</C> and the number of symbols <C>6</C>. Since <Ref
InfoClass="InfoGBNPTime" Style="Text"/> is set to 2, we get
timing information from <Ref Func="DimQA" Style="Text"/>:

<Listing><![CDATA[
gap> dim := DimQA(GB,6);
#I  The computation took 144 msecs.
51840
]]></Listing>
</Section>
<#/GAPDoc>
