[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Constants associated with crystallographic root data

There are a number of constants associated with crystallographic root data which are used to define Lie algebras and groups of Lie type. In this section we describe functions for some such constants. We use the notation of [Car72].

SetExtraspecialSigns( RD, s ) : RootDtm, . ->
Many of these constants depend on the choice of a sign for each nonsimple positive root [Car72, page 58]. This function allows the user to determine these signs for the root datum RD by giving a sequence s of length NumPosRoots(RD)-Rank(RD) consisting of integers +1 or -1. It is also possible to give s= + 1 instead of a sequence of all +1 and s= - 1 instead of a sequence of all -1. To prevent errors in structures defined with a root datum, these signs can only be set once---an attempt to reset them will cause an error message. A call to any of the functions in this section will cause these constants to be set, if this has not already been done.
LeftStringLength( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
LieConstant_p( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The constant p_(rs) for the root datum RD, ie. the largest p so that alpha_s - palpha_r is a root. We require that alpha_s != +-alpha_r.
RightStringLength( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
LieConstant_q( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The constant q_(rs) for the root datum RD, ie. the largest q so that alpha_s + qalpha_r is a root. We require that alpha_s != +-alpha_r.
CartanInteger( RD, r, s) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
LieConstant_A( RD, r, s) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The Cartan integer

A_(rs)=p_(rs) - q_(rs)=< alpha_r, alpha_s^star >=frac(2(alpha_r, alpha_s))((alpha_s, alpha_s))

for the root datum RD.

LieConstant_N( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The Lie algebra structure constant N_(rs) for the root datum RD. This is defined by the formula [e_r, e_s]=N_(rs)e_(r + s), where e_r is the basis element in the Lie algebra corresponding to the root alpha_r (described more fully in the chapter on Lie algebras). We require that alpha_s != +-alpha_r.
LieConstant_epsilon( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The constant epsilon_(rs)= Sign(N_(rs)) for the root datum RD. We require that alpha_s != +-alpha_r.
LieConstant_M( RD, r, s, i ) : RootDtm, RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The constant M_(rsi)=(1/(i!))N_(rs_0) ... N_(rs_(i - 1)) for the root datum RD, where alpha_(s_i) = ialpha_r + alpha_s. We require that alpha_s != +-alpha_r.
LieConstant_C( RD, i, j, r, s ) : RootDtm, RngIntElt, RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The Lie group structure constant C_(ijrs) for the root datum RD. This is determined by the commutator formula [x_r(t), (x_s(u))] = prod_(i, j>0) x_(ialpha_r + jalpha_s)(C_(jisr)t^i( - u)^j) where x_r(t) is the root element in the group of Lie type corresponding to the root alpha_r and constant t (see Subsection The Steinberg presentation). We require that alpha_s != +-alpha_r and alpha_r + alpha_s in Phi.
LieConstant_eta( RD, r, s ) : RootDtm, RngIntElt, RngIntElt -> RngIntElt
The constant

eta_(rs)= ( - 1)^(p_(rs)) frac(epsilon_(r, s - pr) ... epsilon_(r, s - r)) (epsilon_(r, s - pr) ... epsilon_(r, s + (q - p - 1)r))

for the root datum RD. We require that alpha_s != +-alpha_r.

StructureConstants( RD ) : RootDtm -> RngIntElt
Structure constants for the semisimple Lie algebra with the same Cartan type as RD (in the sparse format described in the chapter on Lie algebras).

Example RootDtm_consts (H35E17)

We check some standard formulas in the root datum of type F_4:

> RD := RootDatum( "F4" );
> N := NumPosRoots( RD );
> r := Random( [1..N] );                                    
> s := Random( [1..r-1] cat [r+1..r+N-1] cat [r+N+1..2*N] );
> C := CartanMatrix( RD );
> C[2,3] eq CartanInteger(RD,2,3);
true
> LieConstant_p(RD,r,s) eq #LeftString(RD,r,s);
true
> LieConstant_q(RD,r,s) eq #RightString(RD,r,s);
true
> LieConstant_A(RD,r,s) eq                        
> LieConstant_p(RD,r,s) - LieConstant_q(RD,r,s);  
true
> LieConstant_N(RD,r,s) eq
> LieConstant_epsilon(RD,r,s) * ( LieConstant_p(RD,r,s) + 1 );
true
> str := [s] cat RightString(RD,r,s);  i := #str-1;
> LieConstant_M(RD,r,s,i) eq
> &*[ LieConstant_N(RD,r,str[j]) : j in [1..i] ] / Factorial(i);
true

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]