In this section we describe functions for a number of constants associated with root data. These constants are needed to define Lie algebras and groups of Lie type. We use the notation of [Car72], except that our constants are defined for right actions rather than left actions [CMT03].
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 fix these signs for the root datum R by giving a sequence s of length NumPosRoots(R)-Rank(R) consisting of integers +1 or -1. It is also possible to set s= + 1 instead of a sequence of all +1 and s= - 1 instead of a sequence of all -1. In order to prevent errors in structures which depend on the root datum, these signs cannot be reset---an attempt to do so will cause an error message. If the extraspecial signs are required by another function and they have not already been set, they are set to +1.
The constant p_(rs) for the root datum R, i.e. the largest p such that alpha_s - palpha_r is a root. This is the same as LeftStringLength. We require that alpha_s != +-alpha_r.
The constant q_(rs) for the root datum R, i.e. the largest q such that alpha_s + qalpha_r is a root. This is the same as RightStringLength. We require that alpha_s != +-alpha_r.
The Cartan integer < alpha_r, alpha_s^star > for the root datum R.
The Lie algebra structure constant N_(rs) for the root datum R. We require that alpha_s != +-alpha_r.
The constant epsilon_(rs)= Sign(N_(rs)) for the root datum R. We require that alpha_s != +-alpha_r.
The constant M_(rsi)=(1/(i!))N_(rs_0) ... N_(rs_(i - 1)) where alpha_(s_i) = ialpha_r + alpha_s for the root datum R. We require that alpha_s != +-alpha_r.
The Lie group structure constant C_(ijrs) for the root datum R. We require that alpha_s != +-alpha_r and alpha_r + alpha_s in Phi.
The constanteta_(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 R. We require that alpha_s != +-alpha_r.
The Lie algebra structure constants for the reductive Lie algebra with root datum R in the sparse format described in Section Construction of Lie Algebras.
> R := RootDatum( "F4" ); > N := NumPosRoots( R ); > r := Random( [1..N] ); > s := Random( [1..r-1] cat [r+1..r+N-1] cat [r+N+1..2*N] );
> C := CartanMatrix( R ); > C[2,3] eq CartanInteger(R,2,3); true
> LieConstant_p(R,r,s) eq #LeftString(R,r,s); true
> LieConstant_q(R,r,s) eq #RightString(R,r,s); true
> CartanInteger(R,s,r) eq > LieConstant_p(R,r,s) - LieConstant_q(R,r,s); true
> LieConstant_N(R,r,s) eq > LieConstant_epsilon(R,r,s) * ( LieConstant_p(R,r,s) + 1 ); true