Spracherkennung für: .tst vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
gap> START_TEST("GBNP test04");
gap> ######################### BEGIN COPYRIGHT MESSAGE #########################
gap> # GBNP - computing Gröbner bases of noncommutative polynomials
gap> # Copyright
2001-
2010 by Arjeh M. Cohen, Dié A.H. Gijsbers, Jan Willem
gap> # Knopper, Chris Krook. Address: Discrete Algebra and Geometry (DAM) group
gap> # at the Department of Mathematics and Computer Science of Eindhoven
gap> # University of Technology.
gap> #
gap> # For acknowledgements see the manual. The manual can be found in several
gap> # formats in the doc subdirectory of the GBNP distribution. The
gap> # acknowledgements formatted as text can be found in the file chap0.txt.
gap> #
gap> # GBNP is free software; you can redistribute it and/or modify it under
gap> # the terms of the Lesser GNU General Public License as published by the
gap> # Free Software Foundation (FSF); either version
2.
1 of the License, or
gap> # (at your option) any later version. For details, see the file 'LGPL' in
gap> # the doc subdirectory of the GBNP distribution or see the FSF's own site:
gap> #
https://www.gnu.org/licenses/lgpl.html
gap> ########################## END COPYRIGHT MESSAGE ##########################
gap>
gap> ### filename = "Icosahedron.g"
gap> ### author Arjeh M. Cohen
gap>
gap> # <#GAPDoc Label="Example04">
gap> # <Section Label="Example04">
gap> # <Heading>The icosahedral group</Heading>
gap> # In this example
gap> # the two-sided relations give the group algebra of
gap> # the group with presentation
gap> # <M>\langle a,b,c \mid a^
2=b^
2=c^
2=(ab)^
3=(bc)^
5=(ac)^
2=
1\rangle</M>,
gap> # the icosahedral group of order
120.
gap> # This is the Coxeter group of type H<M>_
3</M>.
gap> # The module under construction is a
3-dimensional reflection representation,
gap> # <P/>
gap> # First load the package and set the standard infolevel <Ref
gap> # InfoClass="InfoGBNP" Style="Text"/> to
1 and the time infolevel <Ref
gap> # Func="InfoGBNPTime" Style="Text"/> to
1 (for more information about the info
gap> # level, see Chapter <Ref Chap="Info"/>).
gap>
gap> # <L>
gap> LoadPackage("gbnp", false);
true
gap> SetInfoLevel(InfoGBNP,
1);
gap> SetInfoLevel(InfoGBNPTime,
0);
gap> # </L>
gap>
gap> # Create the field containing the golden ratio <C>tau</C>.
gap>
gap> # <L>
gap> x := Indeterminate(Rationals,"x");
x
gap> p := x^
2+ x-
1;
x^
2+x-
1
gap> K := AlgebraicExtension(Rationals,p);
<algebraic extension over the Rationals of degree
2>
gap> tau:=RootOfDefiningPolynomial(K);
a
gap> # </L>
gap>
gap> # Create the free algebra with three generators over this field:
gap>
gap> # <L>
gap> A:=FreeAssociativeAlgebraWithOne(K, "a", "b", "c");
<algebra-with-one over <algebraic extension over the Rationals of degree
2>, with
3 generators>
gap> e:=One(A);; a:=A.a;; b:=A.b;; c:=A.c;;
gap> # </L>
gap>
gap> # The ideal for a quotient of the icosahedral group algebra over this field,
gap> # in which <C>b</C><M>*</M><C>c</C> has a quadratic minimal polynomial
gap> # involving <C>tau</C>:
gap>
gap> # <L>
gap> #(b*c)^
2-tau*b*c+e
gap> Irels:=[a^
2-e,b^
2-e,c^
2-e,a*b*a-b*a*b,((b*c)^
2-tau*b*c+e)*(b*c-e),a*c-c*a];
[ (!-
1)*<identity ...>+(!
1)*a^
2, (!-
1)*<identity ...>+(!
1)*b^
2,
(!-
1)*<identity ...>+(!
1)*c^
2, (!
1)*a*b*a+(!-
1)*b*a*b,
(!-
1)*<identity ...>+(a+
1)*b*c+(-a-
1)*(b*c)^
2+(!
1)*(b*c)^
3,
(!
1)*a*c+(!-
1)*c*a ]
gap> # </L>
gap>
gap> # We now give module relations. The first two describe group elements
gap> # of a vector stabilizer, the third forces the central element <M>(abc)^
5</M>
gap> # to be nontrivial.
gap>
gap> # <L>
gap> Mrels:=[b*c-e,b-e,(a*b*c)^
5+e];;
gap> # </L>
gap>
gap> # First the relations are converted into NP format (see <Ref Sect="NP"/>) with
gap> # the function <Ref Func="GP2NPList" Style="Text"/>.
gap> # Next the function
gap> # <Ref Func="SGrobnerModule" Style="Text"/> is called to calculate a Gröbner basis
gap> # record (see <Ref Sect="GBR"/>).
gap>
gap> # <L>
gap> GBR:=SGrobnerModule(GP2NPList(Mrels),GP2NPList(Irels));;
#I number of entered polynomials is
6
#I number of polynomials after reduction is
6
#I End of phase I
#I End of phase II
#I End of phase III
#I End of phase IV
#I number of entered polynomials is
12
#I number of polynomials after reduction is
12
#I End of phase I
#I End of phase II
#I End of phase III
#I End of phase IV
gap> PrintNPList(GBR.ts);;
a^
2 + !-
1
b^
2 + !-
1
ca + !-
1ac
c^
2 + !-
1
bab + !-
1aba
cbc + !-
1bcb + -a-
1c + a+
1b
bcba + !-
1acba + !-
1abcb + abac + cb + !-
1bc + -a-
2ba + a+
2ab
cbac + !-
1acba + !-
1abcb + abac + cb + !-
1bc + !-
1ba + -a-
1ac + a+
2ab
bacba + abacb + !-
1cba + !-
1bcb + !-
1abc + -a-
2aba + c + a+
2a
gap> PrintNPList(GBR.p);;
[ b + !-
1 ]
[ c + !-
1 ]
[ ac + !-
1a ]
[ aba + !-
1ab ]
[ abc + ab + -aa + -a ]
gap> # </L>
gap>
gap> # It is now possible to calculate the basis of the quotient algebra
gap> # with the function <Ref Func="BaseQM" Style="Text"/>. This function has as
gap> # arguments the Gröbner basis record <C>GBR</C>, the number of generators of
gap> # the algebra (in this case
3), the number of generators of the
gap> # free module in which the vectors are chosen (in this case
1),
gap> # and a variable <C>maxno</C> for returning
gap> # partial quotient algebras (
0 means full basis).
gap>
gap> # <L>
gap> B:=BaseQM(GBR,
3,
1,
0);;
gap> PrintNPList(B);
[ !
1 ]
[ a ]
[ ab ]
gap> # </L>
gap>
gap> # Calculate the dimension of the quotient algebra
gap> # with the function <Ref Func="DimQM" Style="Text"/>. This function has as
gap> # arguments the Gröbner basis record <C>GBR</C>,
gap> # the number of generators of
gap> # the algebra (in this case
3) and
gap> # the number of generators of
gap> # the module (in this case
1).
gap>
gap>
gap>
gap> # <L>
gap> DimQM(GBR,
3,
1);
3
gap> # </L>
gap>
gap> # Next we write down the matrices for the right action of the generators
gap> # on the module by means of
gap> # <Ref Func="MatrixQA" Style="Text"/>.
gap>
gap> # <L>
gap> aa := MatrixQA(
1,B,GBR);;
gap> Display(aa);
[ [ !
0, !
1, !
0 ],
[ !
1, !
0, !
0 ],
[ !
0, !
0, !
1 ] ]
gap> bb := MatrixQA(
2,B,GBR);;
gap> Display(bb);
[ [ !
1, !
0, !
0 ],
[ !
0, !
0, !
1 ],
[ !
0, !
1, !
0 ] ]
gap> cc := MatrixQA(
3,B,GBR);;
gap> Display(cc);
[ [ !
1, !
0, !
0 ],
[ !
0, !
1, !
0 ],
[ a, a, !-
1 ] ]
gap> # </L>
gap>
gap> # Finally we check the defining relations for the icosahedral group
gap> # on the three new matrix generators. This can be done by verifying if the
gap> # result is equal to the identity matrix or with the function <Ref
gap> # BookName="Reference" Func="IsOne" Style="Text"/>.
gap>
gap> # <L>
gap> ee := IdentityMat(
3,K);;
gap> Display(ee);
[ [ !
1, !
0, !
0 ],
[ !
0, !
1, !
0 ],
[ !
0, !
0, !
1 ] ]
gap> aa^
2 = ee;
true
gap> IsOne(aa^
2);
true
gap> IsOne(bb^
2);
true
gap> IsOne(cc^
2);
true
gap> IsOne((aa*bb)^
3);
true
gap> IsOne((aa*cc)^
2);
true
gap> IsOne((bb*cc)^
5);
true
gap> # </L>
gap> # </Section>
gap> # <#/GAPDoc>
gap>
gap>
gap> STOP_TEST("test04.g",
10000);