This is a short explanation of the path model. If you already know how it works, skip ahead to the programs. You will only care about this stuff if you understand the representation theory of Lie groups - in particular, all the terms in the left column. The corresponding ones in the right column are the loosely corresponding concepts in the path model.

weight vector in a representation
weight of a weight vector applying a raising/lowering operator tensoring two weight vectors irreducibility of a representation |
path in t^*
endpoint of the path applying a "path operator", to change the endpoint concatenating two paths connectedness of the colored graph of paths |

It is easiest to define the path operators infinitesimally, and then say "take the time one flow".

**To lower a path** in a particular direction X, find the point on it with
greatest dot product in that direction. There may be several; break ties
by using the last such point, i.e. latest as traced from the origin.
Past that point the path goes more in the direction -X. Take a little
segment of that part and reflect it through the hyperplane perpendicular
to X, leaving the rest of the path alone. The effect will be to nudge
the latter part of the path in the direction X.

The subtlety in doing following the time one flow of this operation is that the hot spot can move; after a while the surgery on the path takes place near a different point. In some sense the operators are continuous but not differentiable.

**To lower a path** is the inverse operation. One looks for the point
with the least dot product, and the ties are broken the opposite way.

If the hot spot is the endpoint of the path, the path operator is declared to be inapplicable (Littelmann says it produces "0", which is in some basically not a path). There is an annoying subtlety; the infinitesimal operators may be applicable while the finite ones (the time one flows) are not. This will be resolved in the next section.

The first test program lets one play with a path and the lowering operators. Someday soon I will implement honest raising operators!

Almost the same story works in the path model, except that a
**dominant path** is not one for which all raising operators are
inapplicable, but one for which all infinitesimal raising operators are
inapplicable. This is the same as its being in the positive Weyl chamber.

The second test program lets one choose an initial path (Warning: at present it trusts you to choose a dominant path) and lowers it to produce all other paths in the representation.

The number of paths with a given endpoint nu is the dimension of the mu weight space in the representation lambda.

The colored graphs do not depend on the original path, just the weight;
they are Kashiwara's **crystal graphs**.

Take all concatenations of a lambda-path and a mu-path. This set will also be closed under the root operators, and so form its own colored graph - but will not be connected. It has a component for each irreducible subrepresentation of the tensor product, and in each component is a unique dominant path. Such paths are necessarily the original path with endpoint lambda with a mu-path on the end, such that the concatenation is dominant.

A plactic algebra for semisimple Lie algebras. Adv. Math. 124 (1996), no. 2, 312--331. 17Bxx

The path model for representations of symmetrizable Kac-Moody algebras. Proceedings of the International Congress of Mathematicians, Vol. 1, 2 (Zurich, 1994), 298--308, Birkhduser, Basel, 1995. 17Bxx

Paths and root operators in representation theory. Ann. of Math. (2) 142 (1995), no. 3, 499--525.

Crystal graphs and Young tableaux. J. Algebra 175 (1995), no. 1, 65--87.

A Littlewood-Richardson rule for symmetrizable Kac-Moody algebras. Invent. Math. 116 (1994), no. 1-3, 329--346.

The first test program allows you to apply the operators yourself to a path. Commands:

Note: the right-moving operator should really be a raising operator, which means it takes the first-moving opportunity to raise rather than the last. So mathematically it's not so correct to include it.

The source.

The second is rather more sophisticated. It starts with a path you specify with the mouse and generates all possible paths therefrom by applying the two lowering operators. Each time, it draws the currently considered path in black, the left-shift in red, the down-and-right-shift in green. It displays the number found so far with a given endpoint. By one of Littelmann's theorems this converges to the multiplicity functions (once all paths are found).

To specify a path, move the mouse within the positive Weyl chamber, and click on turning points, including the endpoint. Then hit space. The endpoint will be moved to a nearby weight.

If you have it running freely, and your computer isn't quick enough to keep up with its drawing the paths, type "a" to tell it to spend more time drawing, until you can see the paths. If you want it to run faster type "A".

The source.

The relevant classes are Path, Arrow, and Szam. (The last is Hungarian for "number"; I needed to do my own rational arithmetic.) They are documented here.

Coming soon: other root systems, tensor products. What else do you want? Send me mail.