
		      DYNKIN  PROJECT  PROGRAMS

			 Anders Skovsted Buch

			    September 1998


The programs in this package were written for the purpose of proving
or disproving Lusztigs conjecture in the case A4, p=5.  Participants
in the project were Anders S. Buch (abuch@mi.aau.dk) and Niels
Lauritzen (niels@mi.aau.dk).  In the project we were able to verify
that Lusztig's conjecture is correct in the above case, by April,
1995.  We hope that you may find any of the programs in the package
useful.


----------------------------------------------------------------------
A.  Command line argument types
----------------------------------------------------------------------

A typical specification of command line syntax (synopsis) for a
program looks as follows:

% alcove rsys-p wge

This means that the program "alcove" expects an argument describing
the root system and characteristics (rsys-p) followed by an element in
the affine Weyl group (wge).  To invoke the command for A2, p=7, and
with the longest element in the finite Weyl group, you can write:

% alcove A2-5 2 1 2

This section describes the different argument types (except for
filenames, etc.).


Root system (rsys or rsys-p)
----------------------------

Specification of the root system, and possibly the characteristics to
work with.  If the program is independent of the characteristic, then
"rsys" will appear in the synopsis, otherwise "rsys-p" will appear.

In any case, the valid arguments are one of the root system types,
possibly followed by a dash and a prime number.  If no prime number is
specified, the internal calculations will use the coxeter number.
This works whenever an "rsys" argument is required, but may produce
unexpected results when "rsys-p" is required.

If the shell environment variable "ROOTSYSTEM" is set to a valid root
system name, any root system argument may be omitted, which means that
the value of "ROOTSYSTEM" will be used in place.

Examples:

A4    :  Root system A4.
A2-3  :  A2 in characteristic 3.
B3-7  :  B3 in characteristic 7.
E8-19 :  E8 in characteristic 19.


Weight (weight)
---------------

Element in the weight lattice expressed in coordinates of the
elementary weights.

Examples

3 3 3 3 :  The top alcove for A4, p=5.


Weyl group element (wge)
------------------------

Element in the affine Weyl-group expressed in terms of simple
reflection numbers.  Simple reflections are numbered 0, 1, ..., n,
with n = rank of root system.  The affine reflection has number 0.

The word "long" can be given to specify the longest element in the
finite Weyl group.  Similarly the word "top" means the Weyl group
element corresponding to the top alcove.  Both "long" and "top" are
valid subexpressions as well.

Examples

1 2 1    :  Longest element for A2.
long     :  Longest element for root system in use.
long 0   :  Longest element composed with affine reflection.
long top :  Product of longest element and element for top alcove.




----------------------------------------------------------------------
B.  Root numbering
----------------------------------------------------------------------


A_n:  1 --- 2 --- 3 --- . . . --- n

B_n:  1 --- 2 --- 3 --- . . . =>= n

C_n:  1 --- 2 --- 3 --- . . . =<= n

                                    (n-1)
                                  /
D_n:  1 --- 2 --- . . . --- (n-2) 
                                  \
                                    n

E_8:  1 --- 3 --- 4 --- 5 --- 6 --- 7 --- 8
                  |
                  2

F_4:  1 --- 2 =>= 3 --- 4

G_2:  1 =<= 2




----------------------------------------------------------------------
C.  Description of commands
----------------------------------------------------------------------


1) Information about root systems
---------------------------------

% calcdata rsys-p

Calculates and prints lots of useful information about a root system.
Smaller pieces of this information can also be obtained by the next
few commands.

Example: calcdata A4-7


% longelem rsys

Prints longest element in affine Weyl group.

Example: longelem A4


% plusroots rsys

Prints the positive roots for the root system.

Example: plusroots A4


% intweights rsys-p

Prints out all alcoves(?) for the root system/prime number.

Example: intweights A4-5


% nmat rsys

Prints out matrices of numbers N(a,b) and N(a,-b), where a and b
are positive roots.

Example: nmat A5



2) Calculations with weights and Weyl group elements
----------------------------------------------------

% minexp rsys wge

Calculates a reduced expression for a given Weyl group element.

Example: minexp A4 long 0 long


% alcove rsys-p wge

Calculates the alcove corresponding to a Weyl group element.

Example: alcove A4-7 0 1 2 3


% alctoexp rsys-p weight

Computes the reduced Weyl group expression corresponding to the weight.

Example: alctoexp A4-5 3 3 3 3


% klpoly rsys wge1 - wge2

Computes the KL polynomial between the two Weyl group elements.

Example: klpoly A4 - long       ## first wge is the identity.


% kltable [-s] rsys

Prints out a table of all KL polynomials relevant for Lusztig's
conjecture for the given root system.  The KL polynomial for a pair
of Weyl group elements whose lengths differ by less than three is
always equal to 1.  If the -s option is given, such polynomials are
skipped.

Example: kltable A3


% lesseq rsys wge1 - wge2

Prints "YES" if wge1 is smaller than wge2 in the Bruhat(?) order.
Otherwise prints "NO".

Example: lesseq A4 long - 0 long 0


% bruhat [-drwc] rsys-p wge

Prints the Bruhat(?) graph under the Weyl group element wge.  Each
Weyl group element is printed, followed by the list of elements
directly below it.

Options:
-d :  only wge's for dominant weights are included.
-r :  only wge's for restricted weights are included.
-w :  weights are printed in place of reflection lists.
-c :  same as -w, except one is added to all weight coordinates.
Note: When -w or -c is used, the output depends on the
      characteristic, at least if the affine reflection is in use.

Example: bruhat -r A3 top
Example: bruhat -c A2 long


% figbruhat [-drwc] [-z pagesize] [-o file.fig] [-p permfile] rsys wge

Generates an .fig file with the tree output by bruhat above.  The
options -d, -r, -w, and -c are the same as for bruhat.  Other options:
-z pagesize : Set page size.  Valid values are "Letter", "Legal",
              "A4", "B5", and expressions like "9.5x8.3".
-o file.fig : Writes the output to the file, rather than printing it.
-p permfile : Permute the rows in the picture as specified in
              permfile.  Useful for avoiding corssing lines in
              pictures. See the supplied files a4-dom.perm and
              a4-rest.perm and try the examples below.

In each of the following examples, a .fig file is created.  This file
can be viewed using xfig.

Example: figbruhat -c -z B5 -o a3-roots.fig a3-5 long
Example: figbruhat -rw -o a4-rest1.fig a4-5 top
Example: figbruhat -rw -o a4-rest2.fig -p a4-rest.perm a4-5 top
Example: figbruhat -d -o a4-dom.fig -p a4-dom.perm a4 top


% psbruhat [-drwc] [-z pagesize] [-m mag] [-o file.ps] [-p permfile] rsys wge

Same as figbruhat, but generates postscript.  fig2dev version 3.1 or
newer must be installed on the system.  The -m option can be used to
specify a magnification, which is passed to fig2dev.

Example: psbruhat -c a3-5 long | lp


% wdif rsys weight1 - weight2

Prints the inverse Cartan matrix multiplied to (weight1 - weight2).

Example: wdif A4 3 3 3 3 - 2 2 2 2


% kostant [-c] rsys weight

Prints all ways of writing weight as a sum of positive roots.  The
order of the roots is as in the output of plusroots.  If the -c option
is used, only the number of ways is printed.

Example: kostant A4 1 1 1 1


% freudenthal rsys weight

Prints all freudenthal numbers for weights under the given highest
weight.


% jsum rsys-p weight

Calculates Jantzen sums.



3) Calculation of weight space dimensions
-----------------------------------------

% redu rsys-p weight

Calculates weight space(?) dimensions for the given root system and
highest weight.


% reduinfo rsys-p weight

Prints the dimensions of the matrices which redu needs to compute and
find the ranks of.


% lusztig [-p] rsys-p weight

Calculates the conjectured dimensions of root spaces using KL
polynomials.  If the -p option is given, all used KL-polynomials are
also printed.


The following programs do the same job as redu, except they can deal
with larger matrices by storing matrix entries in .mat files.  redumat
and redumat2 calculate an interval of matrix entries (two versions,
with redumat2 the newest).  matmerge combines different partial .mat
files into one.  matrank calculates the rank.

% redumat rsys-p weight1 weight2 [first [last]]

Calculates entries in a matrix necessary to calculate the dimension of
the weight space between the two weights.  The entries are stored in a
matrix file with a name based on the input, e.g.
"A3-5-323-000-0-1034.mat".  By specifying first and last, you can make
redumat calculate a range of matrix entries.


% redumat2 rsys-p weight1 weight2 [first [last]]

Same as redumat, but is faster and uses less memory.


% matrank file.mat

Calculates the rank of a matrix file.


% matrank2 file.mat

Same as matrank, but uses less memory.


% mathead file.mat

Prints out the header information in a matrix file.


% matcheck [-s] file.mat

Determines the range of entries in a matrix file.  The -s option gives
the output in short form.


% matprint [-s] file.mat

Prints the entries in a matrix file.  Use -s for short form.


% matfix old.mat new.mat

Copies old.mat to new.mat, while skipping certain unneeded control
information. 


% matmerge file1.mat file2.mat ... filen.mat -o new.mat

Merges several matrix files with different ranges into one new file.



4) Misc. programs
-----------------

% ispc 1234

Prints out "1 2 3 4".  Useful for shell scripts, since this allows for
writing e.g. "lusztig a4-5 `ispc 3333`".


% makelie rsys wge

Prints out a Lie program to calculate all KL-polynomials for Weyl
group elements smaller than the given one.  wge must be in the affine
Weyl group (for Lie to work).


% makekl rsys wge

Prints out "klpoly" commands to calculate same KL-polynomials as
above.  This is useful for checking KL-polynomials in the affine Weyl
group against Lie's.



