The Path Model

In this section we describe functions for working with Littelmann's path model (cf. Section The Path Model). A special role is played by the zero path. The path operators cannot be applied to the zero path. However, on some occasions they do produce the zero path.

DominantLSPath(R, hw) : RootDtm, SeqEnum -> PathLS
Given a root datum R and a sequence hw of non-negative integers returns the path that is the straight line from the origin to hw.
Falpha(p, i) : PathLS, RngIntElt -> PathLS
Given a (non-zero) path p and an integer i between 1 and the rank of the root datum returns the result of applying the path operator fαi to p (where αi is the i-th simple root).
Ealpha(p, i) : PathLS, RngIntElt -> PathLS
Given a (non-zero) path p and an integer i between 1 and the rank of the root datum returns the result of applying the path operator eαi to p (where αi is the i-th simple root).
WeightSequence(p) : PathLS -> SeqEnum
For a path p this returns the sequence of weights that, along with the sequence of rational numbers, defines the path (cf. Section The Path Model).
RationalSequence(p) : PathLS -> SeqEnum
For a path p this returns the sequence of rational numbers that, along with the sequence of weights, defines the path (cf. Section The Path Model).
EndpointWeight(p) : PathLS -> ModTupRngElt
Returns the weight which is the end point of the path p.
Shape(p) : PathLS -> ModTupRngElt
Returns the weight which is the shape of the path p.
WeylWord(p) : PathLS -> SeqEnum
Returns a reduced expression for the element σ of the Weyl group, of shortest length such that σ(λ) = ν1, where λ is the shape of the path p, and ν1 is the first weight in the sequence WeightSequence(p). The reduced expression is represented as a sequence of integers between 1 and the rank of the root datum. In this sequence the index i represents the i-th simple reflection.
IsZero(p) : PathLS -> BoolElt
Returns true if the path p is the zero path, false otherwise.
p1 eq p2 : PathLS, PathLS -> BoolElt
Returns true if the paths p1 and p2 are equal, false otherwise.

Example AlgQEA_LSPaths (H109E11)

> R:= RootDatum("B2");
> p:= DominantLSPath(R, [ 2, 3 ]);
> p;
LS-path of shape (2 3) ending in (2 3)
> Falpha(p, 1);
LS-path of shape (2 3) ending in (0 5)
> Ealpha(Falpha(p, 1), 1);
LS-path of shape (2 3) ending in (2 3)
> p1:= Falpha(Falpha(Falpha(p, 1), 2), 1);
> p1;
LS-path of shape (2 3) ending in (-1  5)
> WeightSequence(p1);
[
    (5 -7),
    (-2  7)
]
> RationalSequence(p1);
[ 0, 1/7, 1 ]
> WeylWord(p1);
[ 2, 1 ]
So s2s1(2, 3) = (5, - 7).
CrystalGraph(R, hw) : RootDtm, SeqEnum -> GrphDir, SeqEnum
For a root datum R and a sequence of non-negative integers hw (of length equal to the rank of the root datum), this function returns the corresponding crystal graph G, along with a sequence of paths. The graph G is a directed labelled graph. The labels on the edges are integers between 1 and the rank of the root system. If there is an edge from i to j with label s, then fαs(pi) = pj, where pi, pj are the i-th and j-th elements of the sequence of paths returned by this function (and fαs is the root operator corresponding to the s-th simple root). In other words, the i-th path is the i-th point of the graph G.

Example AlgQEA_CrystGrph (H109E12)

> R:= RootDatum("G2");
> G, pp:= CrystalGraph(R, [0,1]);
> G;
Digraph
Vertex  Neighbours
1       2 ;
2       3 ;
3       4 ;
4       5 6 ;
5       7 ;
6       8 ;
7       9 ;
8       10 ;
9       11 ;
10      11 ;
11      12 ;
12      13 ;
13      14 ;
14      ;
> e:= Edges(G);
> e[10];
[9, 11]
> Label(e[10]);
1
> Falpha(pp[9], 1) eq pp[11];
true
V2.28, 13 July 2023