home *** CD-ROM | disk | FTP | other *** search
/ Math Solutions 1995 October / Math_Solutions_CD-ROM_Walnut_Creek_October_1995.iso / pc / mac / discrete / doc / weyl.tex < prev    next >
Encoding:
Text File  |  1993-05-05  |  42.5 KB  |  1,092 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. %%
  3. %A  weyl.tex                 GAP documentation                   Meinolf Geck
  4. %%
  5. %A  @(#)$Id: weyl.tex,v 3.5 1993/02/19 10:48:42 gap Exp $
  6. %%
  7. %Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
  8. %%
  9. %H  $Log: weyl.tex,v $
  10. %H  Revision 3.5  1993/02/19  10:48:42  gap
  11. %H  adjustments in line length and spelling
  12. %H
  13. %H  Revision 3.4  1993/02/17  13:38:50  felsch
  14. %H  examples fixed
  15. %H
  16. %H  Revision 3.3  1992/12/02  10:04:30  fceller
  17. %H  fixed a few bad text alignments
  18. %H
  19. %H  Revision 3.2  92/11/30  13:49:52  fceller
  20. %H  initial GAP 3.2 revision
  21. %%
  22. \Chapter{Weyl Groups and Hecke Algebras}
  23.  
  24. In  this chapter  we  describe  functions for  dealing  with finite  Weyl
  25. groups, associated Hecke algebras over a ring of Laurent polynomials, and
  26. their representations.
  27.  
  28. A finite Weyl group is a group with a presentation of the form
  29. \begin{center}
  30. $\langle
  31.     s_1, ..., s_n\ \|\ (s_i s_j)^{m(i,j)}=1 $ for all $i, j
  32. \rangle$
  33. \end{center}
  34. where the $m(i,j)$ are integers contained in $\{ 2, 3, 4, 6 \}$ and where
  35. $m(i,i)=1$  for all  $i$. These groups play a significant role in various
  36. areas  of mathematics such as reflection groups,  Lie algebras and linear
  37. algebraic groups.  Each Weyl group is a direct product  of indecomposable
  38. Weyl groups which  are  in turn classified  by  means of  the well--known
  39. Dynkin diagrams.
  40.  
  41. The   Hecke  algebra  $H$  corresponding  to  a  finite  Weyl  group   as
  42. above  is  defined  as  follows.  Let  $A$  be  a  commutative  ring  and
  43. $q_1, ..., q_n \in A$  such  that  $q_i=q_j$  whenever  $s_i$  and  $s_j$
  44. are  conjugate in   $W$.  Then   $H$  is   the  associative  $A$--algebra
  45. with 1 with generators $a_1, ..., a_n$ and defining relations of the form
  46. \begin{center}
  47.     $a_i^2=q_i  1 + (q_i-1) a_i$ for all $i$
  48. \end{center}
  49. and
  50. \begin{center}
  51.    $a_i a_j a_i ... =  a_j a_i a_j ...\ \ \ m(i,j)$ factors on each side.
  52. \end{center}
  53.  
  54. Usually, $A$ is  chosen  to  be  the ring  of  Laurent polynomials  in an
  55. indeterminate $v$, and all $q_i$ are chosen to be  $v^2$. For each $w \in
  56. W$ we  define an element $T_w  \in H$  as follows.  If $w=s_{i_1}  \cdots
  57. s_{i_k}$  is  a   reduced  expression,  for  some   for   some  $i_j  \in
  58. \{1,\ldots,n\}$, then we  let $T_w  \:=  T_{a_{i_1}} \cdots T_{a_{i_k}}$.
  59. It  can be  shown that $T_w$ is indeed  independent of  the choice of the
  60. reduced expression. The elements $T_w$, $w \in W$, form  an $A$--basis of
  61. the algebra $H$.
  62.  
  63. A suitable reference for the general theory is,  for example, the book by
  64. J.E.Humpreys  on  `Reflection Groups and  Coxeter  Groups\'{}  (Cambridge
  65. Studies in advanced Mathematics 29). A good reference for applications of
  66. Weyl groups  and Hecke  algebras  are  Chapters 1,2  in  the  book by Shi
  67. Jian-Yi on `The Kazhdan-Lusztig  Cells  in Certain Affine Weyl Groups\'{}
  68. (Springer Lecture Notes in Mathematics 1179).
  69.  
  70. At first, let us describe in an informal  way some examples of  how these
  71. programs can be used.
  72.  
  73. The starting point for our programs is to specify  a Cartan matrix.  This
  74. is a square  matrix corresponding to  a  (finite) root system $R$ in some
  75. Euclidean space  $V$  with  $(i,j)$-entry given by $2(r_i,r_j)/(r_i,r_i)$
  76. where $r_i$ and  $r_j$ are fundamental roots in $R$.  The Cartan matrices
  77. for the indecomposable root  system of type $A_n$, $B_n$,  $C_n$,  $D_n$,
  78. $G_2$, $F_4$, $E_6$,  $E_7$,  $E_8$  are accessible  through the function
  79. 'CartanMat'.
  80.  
  81. |    gap> RequirePackage( "weyl" );
  82.     gap> C := CartanMat( "D", 4 );;
  83.     gap> PrintArray( last );
  84.     [ [   2,   0,  -1,   0 ],
  85.       [   0,   2,  -1,   0 ],
  86.       [  -1,  -1,   2,  -1 ],
  87.       [   0,   0,  -1,   2 ] ]|
  88.  
  89. Given two Cartan matrices,  their matrix direct sum (corresponding to the
  90. orthogonal direct  sum  of the  root systems)  is produced  by using  the
  91. function  'DirectSumCartanMat'. This Cartan  matrix conversely determines
  92. the root  system  and hence also the corresponding  Weyl group $W$, i.e.,
  93. the finite subgroup of the  full orthogonal group of $V$ generated by the
  94. reflections along the vectors in $R$. We choose a basis of $V$ consisting
  95. of the  fundamental  root vectors,  and  express  every  root vector as a
  96. linear combination of and  every reflection  matrix with respect to  this
  97. basis.  This   is   performed   by   the   functions   'RootSystem'   and
  98. 'SimpleReflectionMatrices'.
  99.  
  100. |    gap> S:=SimpleReflectionMatrices(C);
  101.     [ [ [ -1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 1, 0 ], [ 0, 0, 0, 1 ] ],
  102.       [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 0, 1 ] ],
  103.       [ [ 1, 0, 1, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 1, 1 ] ],
  104.       [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 0, 0, 0, -1 ] ] ]
  105.     gap> R := Rootsystem(C);
  106.     [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ], 
  107.       [ 1, 0, 1, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 1, 1 ], [ 1, 1, 1, 0 ], 
  108.       [ 1, 0, 1, 1 ], [ 0, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 2, 1 ] ]|
  109.  
  110. We notice that  the root vectors  in $R$ are ordered by increasing height
  111. (and that  only  the positive root vectors  are  returned;  whenever  the
  112. negative  roots are needed, they can be computed by simply typing  |-R|).
  113. If we label the (positive) roots by their position in the above list, and
  114. the  negative roots by  the  next  consecutive numbers, then we  can also
  115. represent each fundamental reflection by the permutation which it induces
  116. on the root vectors.
  117.  
  118. |    gap> P := PermRepresentationRoots( S, R );
  119.     [ ( 1,13)( 3, 5)( 6, 8)( 7, 9)(10,11)(15,17)(18,20)(19,21)(22,23), 
  120.       ( 2,14)( 3, 6)( 5, 8)( 7,10)( 9,11)(15,18)(17,20)(19,22)(21,23), 
  121.       ( 1, 5)( 2, 6)( 3,15)( 4, 7)(11,12)(13,17)(14,18)(16,19)(23,24), 
  122.       ( 3, 7)( 4,16)( 5, 9)( 6,10)( 8,11)(15,19)(17,21)(18,22)(20,23) ]|
  123.  
  124. This is maybe the most fundamental command, and  in fact,  every function
  125. which has to perform computations with group elements in $W$,  does so by
  126. working  with this  (faithful)  permutation representation  of $W$.   The
  127. procedure up to now can be abbreviated by one command, namely
  128.  
  129. |    gap> W := Weyl(C);;|
  130.  
  131. which produces a record with entries\:
  132.  
  133. 'cartan':\\
  134.         contains the Cartan matrix 'C'.
  135.  
  136. 'dim':\\
  137.         contains the length of 'C'.
  138.  
  139. 'degree':\\
  140.         number of positive and negative roots.
  141.  
  142. 'N':\\
  143.         number of positive roots.
  144.  
  145. 'roots':\\
  146.         contains the root system 'R'.
  147.  
  148. 'matgens':\\
  149.         contains the matrix generators 'S'.
  150.  
  151. 'permgens':\\
  152.         contains the permutation generators 'P'.
  153.  
  154. This record is all that the following programs and commands  need.  For a
  155. given element $w \in  W$, the  length $l(w)$  is  defined to  be smallest
  156. integer $k$ such that $w$ can be written as  a product of $k$ fundamental
  157. reflections. Such an  expression  of shortest  possible  length  will  be
  158. called a reduced word for $w$. A user might be interested to think of the
  159. elements of $W$ as such words in the generating fundamental  reflections.
  160. For  these  programs, we represent  a word  simply as  a list of integers
  161. corresponding  to the  fundamental  roots, e.g.,  |[]|  is  the  identity
  162. element, and  |[1], [2]|,  etc. represent the reflection along the first,
  163. the second etc. fundamental root vector. For  other purposes, it might be
  164. better to see the permutation of an element  $w$ on the root vectors. The
  165. functions 'WeylWordPerm' and 'PermWeylWord' will do the conversion of one
  166. form into the other.
  167.  
  168. |    gap> PermWeylWord( W, [ 1, 3, 2, 1, 3 ] );
  169.     ( 1,14,13, 2)( 3,17, 8,18)( 4,12)( 5,20, 6,15)( 7,10,11, 9)(16,24)
  170.     (19,22,23,21)
  171.     gap> WeylWordPerm( W, last );
  172.     [ 1, 3, 1, 2, 3 ]|
  173.  
  174. We notice that the word  we started  with  and  the one that  we ended up
  175. with, are not the same. But of course, they represent the same element of
  176. $W$. The reason for this difference is  that  the function 'WeylWordPerm'
  177. always computes  a reduced word which  is the lexicographically  smallest
  178. among all possible  expressions of  an element  of $W$  as a word  in the
  179. fundamental reflections! The function 'ReducedWeylWord' does the same but
  180. with  an  arbitrary  word as input  (and  not with  a  permutation).   In
  181. particular,  the  element  used  in  the  above  example  has  length  5.
  182. Sometimes, it  is not necessary to compute a  reduced word for an element
  183. $w$ and one is only interested in the length $l(w)$. The crucial point of
  184. working with  the permutation representation of $W$ on $R$ is that $l(w)$
  185. can  be computed very fast and effectively from the permutation, since it
  186. also given by the number of  positive  roots mapped to negative roots  by
  187. $w$, i.e., by the number of $i \in \{ 1,... ,N \}$ such that $i^w > N$.
  188.  
  189. |    gap> LongestWeylWord( W );  & the (unique) longest element in W
  190.     [ 1, 2, 3, 1, 2, 3, 4, 3, 1, 2, 3, 4 ]
  191.     gap> PermWeylWord( W, last );
  192.     ( 1,13)( 2,14)( 3,15)( 4,16)( 5,17)( 6,18)( 7,19)( 8,20)( 9,21)(10,22)
  193.     (11,23)(12,24)
  194.     gap> WeylLengthPerm( W, last );
  195.     12|
  196.  
  197. These are the most  basic  functions available. We now give an example of
  198. how the other commands do work.
  199.  
  200. |    gap> WeylReflections( W );  & all reflections in W
  201.     [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 1, 3, 1 ], [ 2, 3, 2 ], [ 3, 4, 3 ], 
  202.       [ 1, 2, 3, 1, 2 ], [ 1, 3, 4, 3, 1 ], [ 2, 3, 4, 3, 2 ], 
  203.       [ 1, 2, 3, 4, 3, 1, 2 ], [ 3, 1, 2, 3, 4, 3, 1, 2, 3 ] ]
  204.     gap> WeylElements( W );;
  205.     &I  Order = 192
  206.     gap> List( last, Length );
  207.     [ 1, 4, 9, 16, 23, 28, 30, 28, 23, 16, 9, 4, 1 ]|
  208.  
  209. The last  line tells us that there is 1 element of  length 0, there are 4
  210. elements of length 4, etc.
  211.  
  212. |    gap> WeylConjugacyClasses( W );
  213.     &I  Number of cosets = 8
  214.     &I  Number of cosets = 6
  215.     &I  Number of cosets = 2
  216.     &I  30 elements to consider
  217.     &I  Still 18 elements to consider
  218.     &I  13 conjugacy classes found
  219.     [ [  ], [ 1 ], [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 4 ], [ 1, 2, 3 ], 
  220.       [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ], [ 1, 2, 3, 4 ], 
  221.       [ 1, 3, 1, 2, 3, 4 ], [ 1, 2, 3, 1, 2, 3, 4, 3, 1, 2, 3, 4 ] ]|
  222.  
  223. This are the representatives of the conjugacy classes of minimal length.
  224.  
  225. |    gap> LeftCells( W );;
  226.     &I  Order = 192
  227.     &I  R(w) = [  ] :  Size = 1,  1 new cell 
  228.     &I  R(w) = [ 1 ] :  Size = 7,  2 new cells 
  229.     &I  R(w) = [ 1, 2 ] :  Size = 17,  2 new cells 
  230.     &I  R(w) = [ 1, 2, 3 ] :  Size = 7,  2 new cells 
  231.     &I  R(w) = [ 1, 2, 3, 4 ] :  Size = 1,  1 new cell 
  232.     &I  R(w) = [ 1, 2, 4 ] :  Size = 23,  5 new cells 
  233.     &I  R(w) = [ 1, 3 ] :  Size = 17,  2 new cells 
  234.     &I  R(w) = [ 1, 3, 4 ] :  Size = 7,  2 new cells 
  235.     &I  R(w) = [ 1, 4 ] :  Size = 17,  2 new cells 
  236.     &I  R(w) = [ 2 ] :  Size = 7,  2 new cells 
  237.     &I  R(w) = [ 2, 3 ] :  Size = 17,  2 new cells 
  238.     &I  R(w) = [ 2, 3, 4 ] :  Size = 7,  2 new cells 
  239.     &I  R(w) = [ 2, 4 ] :  Size = 17,  2 new cells 
  240.     &I  R(w) = [ 3 ] :  Size = 23,  5 new cells 
  241.     &I  R(w) = [ 3, 4 ] :  Size = 17,  2 new cells 
  242.     &I  R(w) = [ 4 ] :  Size = 7,  2 new cells 
  243.     gap> last[3];
  244.     [ [ [ 2, 4, 3, 1 ], [ 3, 2, 4, 3, 1 ], [ 1, 3, 2, 4, 3, 1 ] ], 
  245.       [ [ 0 ], [ 1, 0 ], [ 0, 1, 0 ] ] ]|
  246.  
  247. This is a left cell  consisting of  three elements with the corresponding
  248. matrix  of  $\mu_{x,y}$,  the coefficient  of $v^{(l(y)-l(x)-1)}$  in the
  249. Kazhdan-Lusztig polynomial $P_{x,y}(v^2)$.
  250.  
  251. |    gap> LeftCellRepresentation( W, last, E(4) );;
  252.     gap> PrintArray( last );
  253.     [ [        [ -1, 0, 0 ],        [ 0, -1, 0 ],     [ 0, E(4), -1 ] ],
  254.       [     [ -1, E(4), 0 ],        [ 0, -1, 0 ],        [ 0, 0, -1 ] ],
  255.       [        [ -1, 0, 0 ],  [ E(4), -1, E(4) ],        [ 0, 0, -1 ] ],
  256.       [     [ -1, E(4), 0 ],        [ 0, -1, 0 ],        [ 0, 0, -1 ] ] ]|
  257.  
  258. The  corresponding  left cell representation  with  the indeterminate $v$
  259. replaced by 'E(4)'.
  260.  
  261. Of course, the user should observe  limitations  on storage  for  working
  262. with  these programs, e.g., the command 'WeylElements'  applied to a Weyl
  263. group  of  type $E_8$  will try  to compute  all elements as words in the
  264. fundamental reflections. Every computer will run out of memory!
  265.  
  266. Some  good  examples  to  see  how  long  the  programs   will  take  for
  267. computations in big Weyl groups are the following.
  268.  
  269. |    LeftCells( Weyl( CartanMat( "F", 4 ) ) );|
  270.  
  271. or
  272.  
  273. |    WeylConjugacyClasses( Weyl( CartanMat( "E", 8 ) ) ) ;|
  274.  
  275. Finally, we give an example  of some computations with Hecke algebras. We
  276. start with the Weyl group of type $A_4$.
  277.  
  278. |    gap> W := Weyl( CartanMat("A",4) );;|
  279.  
  280. We wish to work over the ring of Laurent polynomials  in an indeterminate
  281. $v$, and  we want to  have  $u=v^2$ as a parameter  for the generic Hecke
  282. algebra $H$ of $W$.
  283.  
  284.  
  285. |    gap> v := Indeterminate( Rationals );;  v.name := "v";;
  286.     gap> Hecke( W, v^2 );|
  287.  
  288. From  $v$ we  can  build  arbitrary  Laurent  polynomials  by  using  the
  289. operations |+|, |-|, |*|, and |^|.
  290.  
  291. |    gap> 2*v+3*v^-2-7*(v+v^-1)*(3*v^2-1);
  292.     -21*v^3 - 12*v + 7*v^(-1) + 3*v^(-2)|
  293.  
  294. The command 'Hecke' produces an additional component 'T' in the record of
  295. $W$ which  gives,  for  an element  $w  \in  W$, the  corresponding basis
  296. element $T_w$ in $H$. Computations like the following are possible.
  297.  
  298. |    gap> W.T([1]);
  299.     v^0*T([ 1 ])
  300.     gap> last^2;  & the quadratic relation for a standard base element
  301.     v^2*T([  ])+(v^2 - 1)*T([ 1 ])
  302.     gap> W.T([1,2,3,4]);
  303.     v^0*T([ 1, 2, 3, 4 ])
  304.     gap> last^-1;
  305.     (1 - 4*v^(-2) + 6*v^(-4) - 4*v^(-6) + v^(-8))*T([  ])
  306.     +(-v^(-2) + 3*v^(-4) - 3*v^(-6) + v^(-8))*T([ 1 ])
  307.     +(-v^(-2) + 3*v^(-4) - 3*v^(-6) + v^(-8))*T([ 2 ])
  308.     +(-v^(-2) + 3*v^(-4) - 3*v^(-6) + v^(-8))*T([ 3 ])
  309.     +(-v^(-2) + 3*v^(-4) - 3*v^(-6) + v^(-8))*T([ 4 ])
  310.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 1, 3 ])
  311.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 1, 4 ])
  312.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 2, 1 ])
  313.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 2, 4 ])
  314.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 3, 2 ])
  315.     +(v^(-4) - 2*v^(-6) + v^(-8))*T([ 4, 3 ])
  316.     +(-v^(-6) + v^(-8))*T([ 1, 4, 3 ])
  317.     +(-v^(-6) + v^(-8))*T([ 2, 1, 4 ])
  318.     +(-v^(-6) + v^(-8))*T([ 3, 2, 1 ])
  319.     +(-v^(-6) + v^(-8))*T([ 4, 3, 2 ])
  320.     +v^(-8)*T([ 4, 3, 2, 1 ])
  321.     gap> last2*last;
  322.     v^0*T([  ])|
  323.  
  324. Now  we  turn to some aspects  about the representation  theory of  Hecke
  325. algebras.  At first we compute the left cells of $W$.
  326.  
  327. |    gap> ce := LeftCells(W);;
  328.     &I  Order = 120
  329.     &I  R(w) = [  ] :  Size = 1,  1 new cell 
  330.     &I  R(w) = [ 1 ] :  Size = 4,  1 new cell 
  331.     &I  R(w) = [ 1, 2 ] :  Size = 6,  1 new cell 
  332.     &I  R(w) = [ 1, 2, 3 ] :  Size = 4,  1 new cell 
  333.     &I  R(w) = [ 1, 2, 3, 4 ] :  Size = 1,  1 new cell 
  334.     &I  R(w) = [ 1, 2, 4 ] :  Size = 9,  2 new cells 
  335.     &I  R(w) = [ 1, 3 ] :  Size = 16,  3 new cells 
  336.     &I  R(w) = [ 1, 3, 4 ] :  Size = 9,  2 new cells 
  337.     &I  R(w) = [ 1, 4 ] :  Size = 11,  2 new cells 
  338.     &I  R(w) = [ 2 ] :  Size = 9,  2 new cells 
  339.     &I  R(w) = [ 2, 3 ] :  Size = 11,  2 new cells 
  340.     &I  R(w) = [ 2, 3, 4 ] :  Size = 4,  1 new cell 
  341.     &I  R(w) = [ 2, 4 ] :  Size = 16,  3 new cells 
  342.     &I  R(w) = [ 3 ] :  Size = 9,  2 new cells 
  343.     &I  R(w) = [ 3, 4 ] :  Size = 6,  1 new cell 
  344.     &I  R(w) = [ 4 ] :  Size = 4,  1 new cell |
  345.  
  346. We  use  'LeftCellRepresentation'  to  get  the  corresponding  left cell
  347. representations.
  348.  
  349. |    gap> l := List( last, i -> LeftCellRepresentation(W,i,v) );;
  350.     gap> c := WeylConjugacyClasses(W);
  351.     [ [  ], [ 1 ], [ 1, 3 ], [ 1, 2 ], [ 1, 2, 4 ], [ 1, 2, 3 ],
  352.       [ 1, 2, 3, 4 ] ]
  353.     gap> ch := List( l, i -> CharHeckeRepresentation(i,c) );;|
  354.  
  355. The  last  command computes the  character  values on  representatives of
  356. minimal length in the conjugacy classes.
  357.  
  358. |    gap> Set(last);
  359.     [ [ v^0, -v^0, v^0, v^0, -v^0, -v^0, v^0 ], 
  360.       [ v^0, v^2, v^4, v^4, v^6, v^6, v^8 ],
  361.       [ 4*v^0, v^2 - 3, -2*v^2 + 2, -v^2 + 2, 2*v^2 - 1, v^2 - 1, -v^2 ],
  362.       [ 4*v^0, 3*v^2 - 1, 2*v^4 - 2*v^2, 2*v^4 - v^2, v^6 - 2*v^4,
  363.           v^6 - v^4, -v^6 ],
  364.       [ 5*v^0, 2*v^2 - 3, v^4 - 2*v^2 + 2, -2*v^2 + 1, -v^4 + v^2 - 1,
  365.           v^2, 0*v^0 ],
  366.       [ 5*v^0, 3*v^2 - 2, 2*v^4 - 2*v^2 + 1, v^4 - 2*v^2, v^6 - v^4 + v^2,
  367.           -v^4, 0*v^0 ],
  368.       [ 6*v^0, 3*v^2 - 3, v^4 - 4*v^2 + 1, v^4 - 2*v^2 + 1,
  369.           -2*v^4 + 2*v^2, -v^4 + v^2, v^4 ] ]|
  370.  
  371. 'HeckeCharTable' constructs  a record of a character table, which  can be
  372. displayed using 'DisplayCharTable'.
  373.  
  374. |    gap> t := HeckeCharTable( W, c, last );;
  375.     gap> DisplayCharTable(t);
  376.     H()
  377.  
  378.        2  3      2           3          1           1        2    .
  379.        3  1      1           .          1           1        .    .
  380.        5  1      .           .          .           .        .    1
  381.  
  382.          1a     2a          2b         3a          6a       4a   5a
  383.  
  384.     X.1   1     -1           1          1          -1       -1    1
  385.     X.2   1    v^2         v^4        v^4         v^6      v^6  v^8
  386.     X.3   4  v^2-3     -2v^2+2     -v^2+2      2v^2-1    v^2-1 -v^2
  387.     X.4   4 3v^2-1   2v^4-2v^2   2v^4-v^2    v^6-2v^4  v^6-v^4 -v^6
  388.     X.5   5 2v^2-3  v^4-2v^2+2    -2v^2+1  -v^4+v^2-1      v^2    0
  389.     X.6   5 3v^2-2 2v^4-2v^2+1   v^4-2v^2 v^6-v^4+v^2     -v^4    0
  390.     X.7   6 3v^2-3  v^4-4v^2+1 v^4-2v^2+1  -2v^4+2v^2 -v^4+v^2  v^4|
  391.  
  392. To compute character values on other elements, we proceed as follows.
  393.  
  394. |    gap> w0 := LongestWeylWord(W);
  395.     [ 1, 2, 1, 3, 2, 1, 4, 3, 2, 1 ]
  396.     gap> wcl := WeylClassPolynomials( W, c, last );
  397.     &I  1 2 3 4 4 6 5 4 2 
  398.     [ 0, 0, v^8, v^10 - 2*v^8 + v^6, v^10 - v^8 + v^6 - v^4,
  399.       v^12 - v^10 + v^4 - v^2, v^12 - v^10 - v^2 + 1 ]|
  400.  
  401. In order to get the values of the irreducible characters on $T_{w_0}$, we
  402. have to postmultiply the character table of $H$  by  'wcl' regarded  as a
  403. column vector:
  404.  
  405. |    gap> TransposedMat([wcl]);;
  406.     gap> MultMat( t.irreducibles, last );
  407.     [ [ v^0 ], [ v^20 ], [ 0*v^0 ], [ 0*v^0 ], [ v^8 ], [ v^12 ],
  408.       [ -2*v^10 ] ]|
  409.  
  410. For any comments, suggestions of improvements I would be very grateful,
  411.  
  412. \hfill                                 Aachen, November 1992, Meinolf Geck
  413.  
  414.  
  415. \newpage
  416. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  417. \Section{CartanMat}%
  418. \index{Cartan matrices}
  419.  
  420. 'CartanMat( <type>, <n> )'
  421.  
  422. returns the Cartan matrix of Dynkin type <type> and rank <n>.
  423.  
  424. |    gap> CartanMat( "F", 4 );;
  425.     gap> PrintArray( last );
  426.     [ [   2,  -1,   0,   0 ],
  427.       [  -1,   2,  -1,   0 ],
  428.       [   0,  -2,   2,  -1 ],
  429.       [   0,   0,  -1,   2 ] ]|
  430.  
  431. This function requires the package \"weyl\" (see "RequirePackage").
  432.  
  433. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  434. \Section{DirectSumCartanMat}%
  435. \index{Cartan matrices!direct sum of}
  436.  
  437. 'DirectSumCartanMat( <mat1>, <mat2> )'
  438.  
  439. returns the block  diagonal  direct sum of the Cartan matrices <mat1> and
  440. <mat2>.
  441.  
  442. |    gap> C1 := CartanMat( "A", 4 );;
  443.     gap> PrintArray( last );
  444.     [ [   2,  -1,   0,   0 ],
  445.       [  -1,   2,  -1,   0 ],
  446.       [   0,  -1,   2,  -1 ],
  447.       [   0,   0,  -1,   2 ] ]
  448.     gap> C2 := CartanMat( "D", 4 );;
  449.     gap> PrintArray( last );
  450.     [ [   2,   0,  -1,   0 ],
  451.       [   0,   2,  -1,   0 ],
  452.       [  -1,  -1,   2,  -1 ],
  453.       [   0,   0,  -1,   2 ] ]
  454.     gap> DirectSumCartanMat( C1, C2 );;
  455.     gap> PrintArray( last );
  456.     [ [   2,  -1,   0,   0,   0,   0,   0,   0 ],
  457.       [  -1,   2,  -1,   0,   0,   0,   0,   0 ],
  458.       [   0,  -1,   2,  -1,   0,   0,   0,   0 ],
  459.       [   0,   0,  -1,   2,   0,   0,   0,   0 ],
  460.       [   0,   0,   0,   0,   2,   0,  -1,   0 ],
  461.       [   0,   0,   0,   0,   0,   2,  -1,   0 ],
  462.       [   0,   0,   0,   0,  -1,  -1,   2,  -1 ],
  463.       [   0,   0,   0,   0,   0,   0,  -1,   2 ] ]|
  464.  
  465. This function requires the package \"weyl\" (see "RequirePackage").
  466.  
  467. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  468. \Section{SimpleReflectionMatrices}
  469.  
  470. 'SimpleReflectionMatrices( <mat> )'
  471.  
  472. returns the matrices (in row convention) of the simple reflections of the
  473. Weyl  group determined by  the Cartan  matrix <mat>  with respect  to the
  474. basis  consisting  of  the fundamental  root vectors corresponding to the
  475. rows of <mat>. (This function is only used in the function 'Weyl'.)
  476.  
  477. |    gap> C := CartanMat( "A", 4 );;
  478.     gap> PrintArray( last );
  479.     [ [   2,  -1,   0,   0 ],
  480.       [  -1,   2,  -1,   0 ],
  481.       [   0,  -1,   2,  -1 ],
  482.       [   0,   0,  -1,   2 ] ]
  483.     gap> SimpleReflectionMatrices( C );
  484.     [ [ [ -1, 0, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ],
  485.       [ [ 1, 1, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 0, 1 ] ],
  486.       [ [ 1, 0, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 1, 1 ] ],
  487.       [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 0, 0, 0, -1 ] ] ]|
  488.  
  489. This function requires the package \"weyl\" (see "RequirePackage").
  490.  
  491. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  492. \Section{Rootsystem}
  493.  
  494. 'Rootsystem( <mat> )'
  495.  
  496. returns the positive roots  of the  root system  determined by the Cartan
  497. matrix  <mat>,  given  by their  coefficients  when expressed  as  linear
  498. combinations  of fundamental roots. Thus the  fundamental roots  are  the
  499. standard  basis vectors $e_i$, corresponding to the rows  $i=1,... ,n$ of
  500. <mat>. The roots  are ordered by increasing height.  Note that we use the
  501. convention  that   '<mat>[i,j]'  equals  $2(e_i,e_j)/(e_i,e_i)$.    (This
  502. function is only used in the function 'Weyl'.)
  503.  
  504. |    gap> C := CartanMat( "A", 4 );;
  505.     gap> PrintArray( last );
  506.     [ [   2,  -1,   0,   0 ],
  507.       [  -1,   2,  -1,   0 ],
  508.       [   0,  -1,   2,  -1 ],
  509.       [   0,   0,  -1,   2 ] ]
  510.     gap> Rootsystem( C );
  511.     [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ], 
  512.       [ 1, 1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 1, 1 ], [ 1, 1, 1, 0 ], 
  513.       [ 0, 1, 1, 1 ], [ 1, 1, 1, 1 ] ]|
  514.  
  515. This function requires the package \"weyl\" (see "RequirePackage").
  516.  
  517. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  518. \Section{PermRepresentationRoots}
  519.  
  520. 'PermRepresentationRoots( <mats> , <roots> )'
  521.  
  522. returns the permutations induced by the fundamental reflections <mats> of
  523. a given Weyl group  on the corresponding root system <roots>.   If  there
  524. are $2N$ roots  in total,  then $1,...  ,N$  correspond  to the  positive
  525. roots, and $N+1,... ,2N$ to the negative roots.  (This  function is  only
  526. used in the function 'Weyl'.)
  527.  
  528. |    gap> C := CartanMat( "A", 4 );;
  529.     gap> S := SimpleReflectionMatrices( C );;
  530.     gap> R := Rootsystem( C );;
  531.     gap> PermRepresentationRoots( S, R );
  532.     [ ( 1,11)( 2, 5)( 6, 8)( 9,10)(12,15)(16,18)(19,20), 
  533.       ( 1, 5)( 2,12)( 3, 6)( 7, 9)(11,15)(13,16)(17,19), 
  534.       ( 2, 6)( 3,13)( 4, 7)( 5, 8)(12,16)(14,17)(15,18), 
  535.       ( 3, 7)( 4,14)( 6, 9)( 8,10)(13,17)(16,19)(18,20) ]|
  536.  
  537. This function requires the package \"weyl\" (see "RequirePackage").
  538.  
  539. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  540. \Section{Weyl}
  541.  
  542. 'Weyl( <mat> )'
  543.  
  544. returns  a record containing the basic  information about  the Weyl group
  545. determined by  the Cartan  matrix  <mat>.  This record has  the following
  546. entries.
  547.  
  548. 'cartan':\\
  549.         the Cartan matrix <mat>
  550.  
  551. 'dim':\\
  552.         the size of <mat>
  553.  
  554. 'degree':\\
  555.         the number of positive roots
  556.  
  557. 'N':\\
  558.         the total number of roots
  559.  
  560. 'roots':\\
  561.         the root vectors
  562.  
  563. 'matgens':\\
  564.         the matrices of the simple reflections
  565.  
  566. 'permgens':\\
  567.         the permutations on the root vectors
  568.  
  569.  
  570. |    gap> W := Weyl( CartanMat("G",2) );
  571.     rec(
  572.       cartan := [ [ 2, -1 ], [ -3, 2 ] ],
  573.       dim := 2,
  574.       degree := 12,
  575.       N := 6,
  576.       roots := [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], 
  577.           [ 2, 3 ] ],
  578.       matgens := [ [ [ -1, 0 ], [ 1, 1 ] ], [ [ 1, 3 ], [ 0, -1 ] ] ],
  579.       permgens := 
  580.        [ ( 1, 7)( 2, 3)( 5, 6)( 8, 9)(11,12), ( 1, 5)( 2, 8)( 3, 4)( 7,11)
  581.             ( 9,10) ],
  582.       parameter := [ 1, 1 ] )|
  583.  
  584. This function requires the package \"weyl\" (see "RequirePackage").
  585.  
  586. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  587. \Section{PermWeylWord}
  588.  
  589. 'PermWeylWord( <W> , <w> )'
  590.  
  591. returns the  permutation  on the root vectors determined  by  an  element
  592. which is  given  as a  list  <w> of integers  representing  the  standard
  593. generators of the Weyl group <W>.
  594.  
  595. |    gap> W := Weyl( CartanMat("G",2) );;
  596.     gap> PermWeylWord( W, [1,2,1] );
  597.     ( 1,12)( 2, 4)( 3, 9)( 6, 7)( 8,10)|
  598.  
  599. This function requires the package \"weyl\" (see "RequirePackage").
  600.  
  601. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  602. \Section{WeylWordPerm}
  603.  
  604. 'WeylWordPerm( <W> , <w> )'
  605.  
  606. returns a reduced word in the standard generators  of the  Weyl group <W>
  607. determined by the permutation <w> on the root vectors.
  608.  
  609. |    gap> W := Weyl( CartanMat("G",2) );;
  610.     gap> WeylWordPerm( W, ( 1,12)( 2, 4)( 3, 9)( 6, 7)( 8,10) );
  611.     [ 1, 2, 1 ]|
  612.  
  613. This function requires the package \"weyl\" (see "RequirePackage").
  614.  
  615. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  616. \Section{WeylLengthPerm}
  617.  
  618. 'WeylLengthPerm( <W> , <w> )'
  619.  
  620. returns  the  length  of the  permutation <w>, which corresponds to an
  621. element in the Weyl group <W>, as a reduced expression in the standard 
  622. generators. 
  623.  
  624. |    gap> W := Weyl( CartanMat("F",4) );;
  625.     gap> p := PermWeylWord( W, [1,2,3,4,2] );
  626.     ( 1,44,38,25,20,14)( 2, 5,40,47,48,35)( 3, 7,13,21,19,15)
  627.     ( 4, 6,12,28,30,36)( 8,34,41,32,10,17)( 9,18)(11,26,29,16,23,24)
  628.     (27,31,37,45,43,39)(33,42)
  629.     gap> WeylLengthPerm( W, p );
  630.     5
  631.     gap> WeylWordPerm( W, p );
  632.     [ 1, 2, 3, 2, 4 ]|
  633.  
  634. This function requires the package \"weyl\" (see "RequirePackage").
  635.  
  636. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  637. \Section{ReducedWeylWord}
  638.  
  639. 'ReducedWeylWord( <W> , <w> )'
  640.  
  641. returns  a reduced expression for an element of the Weyl group <W>, which
  642. is  given as a list  <w> of  integers  where each entry 'i'  in this list
  643. represents the 'i'-th standard generator of <W>.
  644.  
  645. |    gap> W := Weyl( CartanMat("E",6) );;
  646.     gap> ReducedWeylWord( W, [1,1,1,1,1,2,2,2,3] );
  647.     [ 1, 2, 3 ]|
  648.  
  649. This function requires the package \"weyl\" (see "RequirePackage").
  650.  
  651. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  652. \Section{LongestWeylWord}
  653.  
  654. 'LongestWeylWord( <W> )'
  655.  
  656. returns  a  reduced expression  in the standard generators  of the unique
  657. element of maximal length of the Weyl group <W>.
  658.  
  659. |    gap> W := Weyl( CartanMat("E",6) );;
  660.     gap> w0 := LongestWeylWord(W);
  661.     [ 1, 2, 3, 1, 4, 2, 3, 1, 4, 3, 5, 4, 2, 3, 1, 4, 3, 5, 4, 2, 6, 5, 
  662.       4, 2, 3, 1, 4, 3, 5, 4, 2, 6, 5, 4, 3, 1 ]|
  663.  
  664. This function requires the package \"weyl\" (see "RequirePackage").
  665.  
  666. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  667. \Section{WeylReflections}
  668.  
  669. 'WeylReflections( <W> )'
  670.  
  671. returns a list of reduced expressions in the standard generators for  the
  672. set of reflections in  the Weyl group <W>. The 'i'-th  entry in this list
  673. is the reflection along the 'i'-th root in '<W>.roots'.
  674.  
  675. |    gap> W := Weyl( CartanMat("B",2) );;
  676.     gap> W.roots;
  677.     [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ], [ 2, 1 ] ]
  678.     gap> WeylReflections(W);
  679.     [ [ 1 ], [ 2 ], [ 2, 1, 2 ], [ 1, 2, 1 ] ]|
  680.  
  681. This function requires the package \"weyl\" (see "RequirePackage").
  682.  
  683. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  684. \Section{WeylRightCosetRepresentatives}
  685.  
  686. 'WeylRightCosetRepresentatives( <W>, <I>, <J> )'
  687.  
  688. returns  a  list  of  reduced  words  in  the  Weyl group  <W> which  are
  689. distinguished representatives for the  right cosets of  $W(J)$ in  $W(I)$
  690. where,  for  each sublist  'K' of  '[1..W.dim]', $W(K)$ is the  parabolic
  691. subgroup generated by the simple reflections corresponding to elements in
  692. 'K'.
  693.  
  694. |    gap> W := Weyl( CartanMat("F",4) );;
  695.     gap> WeylRightCosetRepresentatives( W, [1,2,3], [1,2] );
  696.     &I  Number of cosets = 8
  697.     [ [  ], [ 3 ], [ 3, 2 ], [ 3, 2, 1 ], [ 3, 2, 3 ], [ 3, 2, 1, 3 ], 
  698.       [ 3, 2, 1, 3, 2 ], [ 3, 2, 1, 3, 2, 3 ] ]|
  699.  
  700. This function requires the package \"weyl\" (see "RequirePackage").
  701.  
  702. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  703. \Section{WeylCosetPermRepresentation}
  704.  
  705. 'WeylCosetPermRepresentation( <W>, <J> )'
  706.  
  707. returns the list of  permutations  induced  by the standard generators of
  708. the Weyl group  <W> on the cosets  of the parabolic subgroup generated by
  709. the  elements in the  set <J>. The cosets are in the order determined  by
  710. the  result  of   the   function   'WeylRightCosetRepresentatives(   <W>,
  711. [1..<W>.dim], <J> )'
  712.  
  713. |    gap> W := Weyl( CartanMat("F",4) );;
  714.     gap> WeylCosetPermRepresentation( W, [1,2,3] );
  715.     &I  Number of cosets = 24
  716.     [ ( 4, 5)( 6, 7)( 8,10)(16,18)(17,19)(20,21), 
  717.       ( 3, 4)( 7, 9)(10,12)(14,16)(15,17)(21,22), 
  718.       ( 2, 3)( 4, 6)( 5, 7)( 9,11)(12,14)(13,15)(17,20)(19,21)(22,23), 
  719.       ( 1, 2)( 6, 8)( 7,10)( 9,12)(11,13)(14,15)(16,17)(18,19)(23,24) ]|
  720.  
  721. This function requires the package \"weyl\" (see "RequirePackage").
  722.  
  723. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  724. \Section{WeylElements}
  725.  
  726. 'WeylElements( <W> )'
  727.  
  728. returns a list of  which the 'i' - th entry  is the list of reduced words
  729. of length 'i-1' in the Weyl group <W>.
  730.  
  731. |    gap> W := Weyl( CartanMat("G",2) );;
  732.     gap> WeylElements(W);
  733.     &I  Order = 12
  734.     [ [ [  ] ], [ [ 1 ], [ 2 ] ], [ [ 1, 2 ], [ 2, 1 ] ], 
  735.       [ [ 1, 2, 1 ], [ 2, 1, 2 ] ], [ [ 1, 2, 1, 2 ], [ 2, 1, 2, 1 ] ], 
  736.       [ [ 1, 2, 1, 2, 1 ], [ 2, 1, 2, 1, 2 ] ], [ [ 1, 2, 1, 2, 1, 2 ] ] ]|
  737.  
  738. This function requires the package \"weyl\" (see "RequirePackage").
  739.  
  740. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  741. \Section{WeylConjugacyClasses}
  742.  
  743. 'WeylConjugacyClasses( <W> )'
  744.  
  745. returns  a list  of representatives of the conjugacy  classes of the Weyl
  746. group <W>. Each element  in this list is  given as a word in the standard
  747. generators, and it  has the property that  it is of minimal length in its
  748. conjugacy class.
  749.  
  750. |    gap> W := Weyl( CartanMat("F",4) );;
  751.     gap> WeylConjugacyClasses(W);
  752.     &I  Number of cosets = 24
  753.     &I  Number of cosets = 8
  754.     &I  Number of cosets = 3
  755.     &I  108 elements to consider
  756.     &I  Still 34 elements to consider
  757.     &I  25 conjugacy classes found
  758.     [ [  ], [ 1 ], [ 3 ], [ 1, 2 ], [ 1, 3 ], [ 2, 3 ], [ 3, 4 ],
  759.       [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ], [ 1, 2, 3, 4 ],
  760.       [ 2, 3, 2, 3 ], [ 1, 2, 3, 2, 3 ], [ 2, 3, 2, 3, 4 ],
  761.       [ 1, 2, 3, 2, 3, 4 ], [ 1, 3, 2, 1, 3, 2, 3, 4 ],
  762.       [ 1, 2, 1, 3, 2, 1, 3, 2, 3 ], [ 2, 3, 2, 3, 4, 3, 2, 3, 4 ],
  763.       [ 1, 2, 1, 3, 2, 1, 3, 2, 3, 4 ], [ 1, 2, 3, 2, 3, 4, 3, 2, 3, 4 ],
  764.       [ 1, 2, 1, 3, 2, 1, 3, 4, 3, 2, 3, 4 ],
  765.       [ 1, 2, 1, 3, 2, 1, 3, 2, 3, 4, 3, 2, 3, 4 ],
  766.       [ 1, 2, 3, 2, 1, 3, 2, 3, 4, 3, 2, 1, 3, 2, 3, 4 ],
  767.       [ 1, 2, 1, 3, 2, 1, 3, 2, 3, 4, 3, 2, 1, 3, 2, 3, 4, 3, 2, 1, 3, 2,
  768.           3, 4 ] ]|
  769.  
  770. This function requires the package \"weyl\" (see "RequirePackage").
  771.  
  772. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  773. \Section{ParametersCentralizers}
  774.  
  775. 'ParametersCentralizers( <W> )'
  776.  
  777. returns a  list  of  pairs which  parametrizes the  conjugacy classes  of
  778. centralizers of semisimple elements in  a Chevalley group with Weyl group
  779. <W>. Each  pair consists of  a subset which contains fundamental roots or
  780. the highest  root  in  the root  system of  <W>, and  an  element in  the
  781. normalizer in <W> of the subgroup generated by the reflections along  the
  782. roots in the given subset.
  783.  
  784. |    gap> W := Weyl( CartanMat( "A", 4 ) );;
  785.     gap> ParametersCentralizers( W );
  786.     &I  Number of Psi's = 7
  787.     &I  7 conjugacy classes 
  788.     &I  3 conjugacy classes 
  789.     &I  2 conjugacy classes 
  790.     &I  2 conjugacy classes 
  791.     &I  1 conjugacy classes 
  792.     &I  1 conjugacy classes 
  793.     &I  1 conjugacy classes 
  794.     &I  Number of Pairs = 17
  795.     [ [ [  ], [  ] ], [ [  ], [ 4 ] ], [ [  ], [ 4, 3 ] ], 
  796.       [ [  ], [ 4, 3, 2, 1 ] ], [ [  ], [ 3, 2, 1 ] ],
  797.       [ [  ], [ 2, 1, 4 ] ], [ [  ], [ 2, 1, 3, 2 ] ], [ [ 1 ], [  ] ],
  798.       [ [ 1 ], [ 4 ] ], [ [ 1 ], [ 4, 3 ] ], [ [ 1, 2 ], [  ] ],
  799.       [ [ 1, 2 ], [ 4 ] ], [ [ 1, 3 ], [  ] ],
  800.       [ [ 1, 3 ], [ 2, 1, 3, 2 ] ], [ [ 1, 2, 3 ], [  ] ],
  801.       [ [ 1, 2, 4 ], [  ] ], [ [ 1, 2, 3, 4 ], [  ] ] ]|
  802.  
  803. This function requires the package \"weyl\" (see "RequirePackage").
  804.  
  805. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  806. \Section{Bruhat}
  807.  
  808. 'Bruhat( <W>, <y>, <w> )'
  809.  
  810. returns true, if the element <y> is less than or equal to the element <w>
  811. of  the Weyl  group <W>, and false otherwise. Both <y>  and <w>  must  be
  812. given as permutations on the root vectors of <W>.
  813.  
  814. This function requires the package \"weyl\" (see "RequirePackage").
  815.  
  816. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  817. \Section{KazhdanLusztigPolynomial}
  818.  
  819. 'KazhdanLusztigPolynomial( <W>, <y>, <w>, <u> )'
  820.  
  821. returns  the  Kazhdan  -  Lusztig  polynomial  in the  indeterminate  <u>
  822. corresponding  to the elments <y> and  <w> (given as reduced expressions in
  823. the standard generators) of the Weyl group <W>.
  824.  
  825. |    gap> W := Weyl( CartanMat("B",4) );;
  826.     gap> y := [1,2,3,4,3,2,1];;
  827.     gap> x := [1];;
  828.     gap> u := Indeterminate(Rationals);;  u.name := "u";;
  829.     gap> KazhdanLusztigPolynomial( W, x, y, u );
  830.     &I  Order = 384
  831.     u^2 + 2*u + 1|
  832.  
  833. This function requires the package \"weyl\" (see "RequirePackage").
  834.  
  835. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  836. \Section{KLCoefficient}
  837.  
  838. 'KLCoefficient( <W>, <y>, <w>, <k> )'
  839.  
  840. returns  the <k>-th  coefficient  of  the  Kazhdan  -  Lusztig polynomial
  841. corresponding  to  the  elments  <y> and  <w>, which  must  be  given  as
  842. permutations on the root vectors, of the Weyl  group <W>.  (This function
  843. does  not use the polynomial  arithmetic  and is  slightly more efficient
  844. than the function 'KazhdanLusztigPolynomial'.)
  845.  
  846. |    gap> W := Weyl( CartanMat("B",4) );;
  847.     gap> y := [1,2,3,4,3,2,1];;
  848.     gap> py := PermWeylWord( W, y );
  849.     ( 1,28)( 2,15)( 4,27)( 6,16)( 7,24)( 8,23)(11,20)(12,17)(14,30)(18,31)
  850.     (22,32)
  851.     gap> x := [1];;
  852.     gap> px := PermWeylWord( W, x );
  853.     ( 1,17)( 2, 8)( 6,11)(10,14)(18,24)(22,27)(26,30)
  854.     gap> Bruhat( W, px, py );
  855.     true
  856.     gap> List( [0..3], i -> KLCoefficient( W, px, py, i ) );
  857.     &I  Order = 384
  858.     [ 1, 2, 1, 0 ]|
  859.  
  860. So  the  Kazhdan-Lusztig polynomial  corresponding  to  $x$  and  $y$  is
  861. $1+2u+u^2$.
  862.  
  863. This function requires the package \"weyl\" (see "RequirePackage").
  864.  
  865. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  866. \Section{WeylMueMat}
  867.  
  868. 'WeylMueMat( <W>, <list> )'
  869.  
  870. returns  the list of  highest coefficients  $\mu_{y,w}$  of the  Kazhdan-
  871. Lusztig polynomials corresponding to  pairs of elements of the Weyl group
  872. <W>  from a  list  <list>.   The  elements  in  <list>  must  be  reduced
  873. expressions in  the  standard  generators, ordered by  increasing length.
  874. E.g., <list> is the result of
  875. 'Iterated(WeylElements(<W>),Concatenation)'.
  876. (See the  next  section for an example.)
  877.  
  878. This function requires the package \"weyl\" (see "RequirePackage").
  879.  
  880. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  881. \Section{DecomposedLeftCells}
  882.  
  883. 'DecomposedLeftCells( <W>, <c>, <mue> )'
  884.  
  885. given  a   list  <c>  of  reduced  words  in  the  Weyl  group  <W>  with
  886. corresponding matrix <mue>  of highest coefficients of the  corresponding
  887. Kazhdan-Lusztig  polynomials,  it  returns a  list  of  pairs. The  first
  888. component of each pair  consists of the reduced  words  in  the  list <c>
  889. which lie in one  left  cell  $C$, the  second component consists of  the
  890. corresponding matrix of highest coefficients $\mu_{y,w}$, where $y,w$ are
  891. in $C$.
  892.  
  893. |    gap> W := Weyl( CartanMat("G",2) );;
  894.     gap> WeylElements(W);;
  895.     &I  Order = 12
  896.     gap> c := Iterated( last, Concatenation );
  897.     [ [  ], [ 1 ], [ 2 ], [ 1, 2 ], [ 2, 1 ], [ 1, 2, 1 ], [ 2, 1, 2 ], 
  898.       [ 1, 2, 1, 2 ], [ 2, 1, 2, 1 ], [ 1, 2, 1, 2, 1 ],
  899.       [ 2, 1, 2, 1, 2 ], [ 1, 2, 1, 2, 1, 2 ] ]
  900.     gap> mue := WeylMueMat( W, c );
  901.     &I  Order = 12
  902.     [ [ 0 ], [ 1, 0 ], [ 1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 1, 1, 0, 0 ], 
  903.       [ 0, 0, 0, 1, 1, 0 ], [ 0, 0, 0, 1, 1, 0, 0 ],
  904.       [ 0, 0, 0, 0, 0, 1, 1, 0 ], [ 0, 0, 0, 0, 0, 1, 1, 0, 0 ],
  905.       [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 ],
  906.       [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 ],
  907.       [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 ] ]
  908.     gap> DecomposedLeftCells( W, c, mue );
  909.     [ [ [ [  ] ], [ [ 0 ] ] ],
  910.       [ [ [ 1 ], [ 2, 1 ], [ 1, 2, 1 ], [ 2, 1, 2, 1 ], [ 1, 2, 1, 2, 1 ]
  911.              ],
  912.           [ [ 0 ], [ 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1, 0
  913.                  ] ] ],
  914.       [ [ [ 2 ], [ 1, 2 ], [ 2, 1, 2 ], [ 1, 2, 1, 2 ], [ 2, 1, 2, 1, 2 ]
  915.              ],
  916.           [ [ 0 ], [ 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1, 0
  917.                  ] ] ], [ [ [ 1, 2, 1, 2, 1, 2 ] ], [ [ 0 ] ] ] ]|
  918.  
  919. This function requires the package \"weyl\" (see "RequirePackage").
  920.  
  921. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  922. \Section{LeftCells}
  923.  
  924. 'LeftCells( <W> )'
  925.  
  926. returns a list of pairs. The first component of each pair consists of the
  927. reduced words  in the Weyl group <W> which lie in one left  cell $C$, the
  928. second  component  consists  of  the  corresponding   matrix  of  highest
  929. coefficients $\mu_{y,w}$, where $y,w$ are in $C$.
  930.  
  931. |    gap> W := Weyl( CartanMat("G",2) );;
  932.     gap> LeftCells(W);
  933.     &I  Order = 12
  934.     &I  R(w) = [  ] :  Size = 1,  1 new cell 
  935.     &I  R(w) = [ 1 ] :  Size = 5,  1 new cell 
  936.     &I  R(w) = [ 1, 2 ] :  Size = 1,  1 new cell 
  937.     &I  R(w) = [ 2 ] :  Size = 5,  1 new cell 
  938.     [ [ [ [  ] ], [ [ 0 ] ] ],
  939.       [ [ [ 1 ], [ 2, 1 ], [ 1, 2, 1 ], [ 2, 1, 2, 1 ], [ 1, 2, 1, 2, 1 ] 
  940.              ],
  941.           [ [ 0 ], [ 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1, 0
  942.                  ] ] ], [ [ [ 1, 2, 1, 2, 1, 2 ] ], [ [ 0 ] ] ],
  943.       [ [ [ 2 ], [ 1, 2 ], [ 2, 1, 2 ], [ 1, 2, 1, 2 ], [ 2, 1, 2, 1, 2 ] 
  944.              ],
  945.           [ [ 0 ], [ 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1, 0
  946.                  ] ] ] ]|
  947.  
  948. This function requires the package \"weyl\" (see "RequirePackage").
  949.  
  950. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  951. \Section{LeftCellRepresentation}
  952.  
  953. 'LeftCellRepresentation( <W> , <cell>, <v> )'
  954.  
  955. returns a  list of matrices giving  the left cell representation  of  the
  956. Hecke algebra with parameter <v>$^2$  associated with the Weyl group <W>.
  957. The  argument <cell> is a pair  with first  component  a list  of reduced
  958. words which  form  a  left  cell, and second component  the corresponding
  959. matrix  of  highest  coefficients  of the  corresponding  Kazhdan-Lusztig
  960. polynomials.   Typically,   <cell>  is   the  result   of  the   function
  961. 'WeylMueMat'.
  962.  
  963. This function requires the package \"weyl\" (see "RequirePackage").
  964.  
  965. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  966. \Section{Hecke}
  967.  
  968. 'Hecke( <W>, <arg> )'
  969.  
  970. adds to the  record of the Weyl  group  <W> a  component 'T'  which  is a
  971. function that  produces, for each  element $w \in  W$, the  corresponding
  972. basis  element $T_w$  in the generic Hecke algebra. <arg>  specifies  the
  973. index parameters corresponding to the standard  generators. If <arg> is a
  974. single field element or a polynomial,  then all parameters are assumed to
  975. be  equal  to  this element.  Alternatively, <arg>  may be a list of such
  976. numbers or polynomials. Accordingly,  a component 'parameter' is added to
  977. the record of <W>.
  978.  
  979. |    gap> W := Weyl( CartanMat("B",3) );;
  980.     gap> q := Indeterminate(Rationals);;  q.name := "q";;
  981.     gap> Hecke( W, 1 );|
  982.  
  983. or 
  984.  
  985. |    gap> Hecke( W, [q,q^2,q^2] );|
  986.  
  987. This function requires the package \"weyl\" (see "RequirePackage").
  988.  
  989. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  990. \Section{WeylClassPolynomials}
  991.  
  992. 'WeylClassPolynomials( <W>, <reps>, <w> )'
  993.  
  994. returns  the  class  polynomials of  the  element  <w>  with  respect  to
  995. representatives <reps> of minimal lengths in the conjugacy classes of the
  996. Weyl   group   <W>.   Typically,   <reps>   is    the   result   of   the
  997. 'WeylConjugacyClasses' and <w> is  a reduced  expression in  the standard
  998. generators of  <W>.  (For  the definition of  these polynomials, see  the
  999. article by G.Pfeiffer and M.Geck in Advances in Mathematics (to appear).)
  1000.  
  1001. This function requires the package \"weyl\" (see "RequirePackage").
  1002.  
  1003. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1004. \Section{HeckeReflectionRepresentation}
  1005.  
  1006. 'HeckeReflectionRepresentation( <W> )'
  1007.  
  1008. returns a list of  matrices which give  the  reflection representation of
  1009. the  Hecke  algebra  corresponding  to the Weyl  group <W>. The  function
  1010. 'Hecke' must have been applied to the record <W>.
  1011.  
  1012. |    gap> W := Weyl( CartanMat("F",4) );;
  1013.     gap> Hecke(W,1);   & the parameters are set to 1, so that the
  1014.     gap>               & Hecke algebra is isomorphic to the
  1015.     gap>               & group algebra of the Weyl group.
  1016.     gap> HeckeReflectionRepresentation(W);
  1017.     [ [ [ -1, 0, 0, 0 ], [ -1, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ],
  1018.       [ [ 1, -1, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, -1, 1, 0 ], [ 0, 0, 0, 1 ] 
  1019.          ],
  1020.       [ [ 1, 0, 0, 0 ], [ 0, 1, -2, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, -1, 1 ] 
  1021.          ],
  1022.       [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, -1 ], [ 0, 0, 0, -1 ] 
  1023.          ] ]|
  1024.  
  1025. This function requires the package \"weyl\" (see "RequirePackage").
  1026.  
  1027. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1028. \Section{CheckHeckeDefiningRelations}
  1029.  
  1030. 'CheckHeckeDefiningRelations( <W> , <t> )'
  1031.   
  1032. returns true or false, according to whether a given  set  <t>  of  matrices  
  1033. corresponding to the standard generators of the  Weyl group  <W>  defines a 
  1034. representation of the associated Hecke algebra  or not. 
  1035.  
  1036. |    gap> W := Weyl( CartanMat("F",4) );;
  1037.     gap> Hecke( W, 1 );
  1038.     gap> HeckeReflectionRepresentation(W);;
  1039.     gap> CheckHeckeDefiningRelations( W, last );
  1040.     true|
  1041.  
  1042. This function requires the package \"weyl\" (see "RequirePackage").
  1043.  
  1044. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1045. \Section{CharHeckeRepresentation}
  1046.  
  1047. 'CharHeckeRepresentation( <rep> , <elts> )'
  1048.   
  1049. given a list <rep>  of matrices corresponding to the standard  generators
  1050. of  a  finite Weyl  group  and  a  list  <elts> of words in  the standard
  1051. generators   it  returns   the  list   of  traces  of  the  corresponding
  1052. representation on the elements in <elts>.
  1053.  
  1054. |    gap> W := Weyl( CartanMat("F",4) );;
  1055.     gap> Hecke( W, 1 );
  1056.     gap> r := WeylConjugacyClasses(W);;
  1057.     &I  Number of cosets = 24
  1058.     &I  Number of cosets = 8
  1059.     &I  Number of cosets = 3
  1060.     &I  108 elements to consider
  1061.     &I  Still 34 elements to consider
  1062.     &I  25 conjugacy classes found
  1063.     gap> t := HeckeReflectionRepresentation(W);;
  1064.     gap> CharHeckeRepresentation( t, r );
  1065.     [ 4, 2, 2, 1, 0, 2, 1, 1, -1, -1, 1, 0, 0, 0, 0, 0, 2, -2, -2, -1,
  1066.       -1, 0, -2, -2, -4 ]|
  1067.  
  1068. This function requires the package \"weyl\" (see "RequirePackage").
  1069.  
  1070. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1071. \Section{HeckeCharTable}
  1072.  
  1073. 'HeckeCharTable( <W>, <rep>, <elts>)'
  1074.  
  1075. given a Weyl group <W>,  a list  <rep> of characters and a list <elts> of
  1076. representatives of minimal lengths in  the conjugacy classes it returns a
  1077. character table record.
  1078.  
  1079. This function requires the package \"weyl\" (see "RequirePackage").
  1080.  
  1081. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1082. %E  Emacs . . . . . . . . . . . . . . . . . . . . . local Emacs variables
  1083. %%
  1084. %%  Local Variables:
  1085. %%  mode:               outline
  1086. %%  outline-regexp:     "\\\\Chapter\\|\\\\Section\\|%E"
  1087. %%  fill-column:        73
  1088. %%  eval:               (hide-body)
  1089. %%  End:
  1090. %%
  1091.  
  1092.