> < ^ Date: Tue, 22 Mar 1994 19:18:00 -0800
> < ^ From: Jacob Hirbawi <hirbawi@commquest.com >
> ^ Subject: Re: Lie algebras

This may not be relevant to what you're trying to calculate, but I did write
some GAP code to work with semisimple Lie algebras and their representations.
The code is, to some extent, also setup to deal with Kak-Moody algebras;
although I haven't pursued that too far yet. Here's a brief desciption:

(1) The starting point is the Killing form matrix - same as Cartan matrix
for ADE algebras, slightly different for the others. The code includes
routines to generate these matrices for An,Bn,Cn,Dn,G2,F4,E6,E7,E8 as
well as the affine and "twisted" versions of these.

(2) From the matrix in (1) the Cartan matrix, root system, half of positive
roots, adjoint rep, basic reps, ... and other standard structures
derived. (For infinite root systems the calculations are stopped after
a certain point).

(3) For Lie algebras, the Weyl dimension formula is provided.

(4) For Lie algebras, the weights and multiplicities of a represntation
are calculated given its highest weight. (this uses Freudenthal's
recursive formula).

There is a slight amount of overlap of this code with parts of the Weyl
package; the code is not well documented but it should make sense (I hope) to
those familiar with the subject. I can e-mail it to anyone intereted.

Jacob Hirbawi
JcbHrb@CERF.net

Below is a sample session :
--------------------------------------------------------------------------------
# look at the Lie algebra g2
gap> G2 := WeylModule( Sg(2) );
# some info printed by the routine, can be disabled.
(1) Killing Matrix
[ [   2,  -3 ],
  [  -3,   6 ] ]
(2) Cartan Matrix
[ [   2,  -3 ],
  [  -1,   2 ] ]
(3) Det of Cartan Matrix    1
(4) Positive Roots          6
(5) Coxeter Number          5
(6) Highest Root            [ 3, 2 ]
(7) Adjoint Rep             [ 0, 1 ]
(8) Rho                     [ 5, 3 ]  true
(9) Simple Dimensions       [ 7, 14 ]  true
# output record
rec(
  Rho := [ 5, 3 ],
  SimpleWeights := [ [ 2, 1 ], [ 3, 2 ] ],
  Dimension := function ( rep ) ... end,
  Weights := function ( rep ) ... end )

# find the dimeniosn of rep with highest weight [4,2]
gap> G2.Dimension([4,2]);
2926

# find the weight and multiplicities of the rep highest weight [2,0]
gap> G2.Weights([2,0]);
Dimension   27  true
rec(
  Weight := [ [ 4, 2 ], [ 3, 2 ], [ 2, 2 ], [ 3, 1 ], [ 2, 1 ], [ 1, 1 ],
      [ 2, 0 ], [ 0, 1 ], [ 1, 0 ], [ 0, 0 ], [ -1, 0 ], [ 0, -1 ],
      [ -2, 0 ], [ -1, -1 ], [ -2, -1 ], [ -3, -1 ], [ -2, -2 ], [ -3, -2 ],
      [ -4, -2 ] ],
  Multiplicity := [ 1, 1, 1, 1, 2, 2, 1, 1, 2, 3, 2, 1, 1, 2, 2, 1, 1, 1, 1 ]
 )
--------------------------------------------------------------------------------

> < [top]