GAP (SLA) - Chapter 2: Auxiliary Functions

Goto Chapter: Top 1 2 3 4 5 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax on]

2 Auxiliary Functions
2.1 Root Systems
2.1-1 ExtendedCartanMatrix
2.1-2 CartanType
2.2 Weyl groups
2.2-1 WeylTransversal
2.2-2 SizeOfWeylGroup
2.2-3 WeylGroupAsPermGroup
2.2-4 ApplyWeylPermToWeight
2.2-5 WeylWordAsPerm
2.2-6 PermAsWeylWord
2.3 Lie Algebras and Their Modules
2.3-1 IsomorphismOfSemisimpleLieAlgebras
2.3-2 AdmissibleLattice
2.3-3 DirectSumDecomposition
2.3-4 CharacteristicsOfStrata

### 2 Auxiliary Functions

This chapter contains the description of some functions that do not fit in any other chapter.

#### 2.1 Root Systems

##### 2.1-1 ExtendedCartanMatrix

`‣ ExtendedCartanMatrix`( R ) | ( operation )

Here R is a root system. This function returns the extended Cartan matrix of R. That is the Cartan matrix correponding to the lowest root (coming first), and the simple roots of R.

The output is a record with components ECM (the extended Cartan matrix) and labels (the labels of the corresponding Dynkin diagram; they are the integer coefficients of a linear dependency of the roots corresponding to the nodes).

    gap> R:= RootSystem("F",4);;
    gap> ExtendedCartanMatrix(R);
    rec( ECM := [ [ 2, -1, 0, 0, 0 ], [ -1, 2, -1, 0, 0 ], [ 0, -1, 2, -2, 0 ],
          [ 0, 0, -1, 2, -1 ], [ 0, 0, 0, -1, 2 ] ], labels := [ 1, 2, 3, 4, 2 ] )

##### 2.1-2 CartanType

`‣ CartanType`( C ) | ( operation )

Here C is a Cartan matrix (i.e., an integer matrix with 2-s on the diagonal, non-positive entries otherwise, and there exists a diagonal integer matrix D such that CD is a positive definite symmetric matrix). This function returns a record with two components: types, a list containing the types of the simple components of the corresponding root system, and enumeration, a standard enumeration of the vertices of the Dynkin diagram of C. So this can be used to construct isomorphisms of root systems.

    gap> C:= [[2,0,-3,0],[0,2,0,-1],[-1,0,2,0],[0,-1,0,2]];
    [ [ 2, 0, -3, 0 ], [ 0, 2, 0, -1 ], [ -1, 0, 2, 0 ], [ 0, -1, 0, 2 ] ]
    gap> CartanType(C);
    rec( enumeration := [ [ 3, 1 ], [ 2, 4 ] ],
      types := [ [ "G", 2 ], [ "A", 2 ] ] )

#### 2.2 Weyl groups

##### 2.2-1 WeylTransversal

`‣ WeylTransversal`( R, inds ) | ( operation )

`‣ WeylTransversal`( R, roots ) | ( operation )

Here R is a root system, and inds a list of indices of positive roots of R that form a set of simple roots of a root subsystem of R (the system does not check this). Here an index of a positive root is its position in the list PositiveRootsNF( R ).

This function returns a list of shortest representatives of the right cosets of the corresponding Weyl subgroup of the Weyl group of R. The elements of the Weyl group are given as reduced expressions.

In the second form rts is a list of roots of R, that form a set of simple roots of a root subsystem of R (again, this is not checked). In this form the roots so not have to be positive. They have to be represented with respect to the basis of simple roots, i.e., they are elements of PositiveRootsNF(R) or of NegativeRootsNF(R).

    gap> R:= RootSystem("A",3);;
    gap> WeylTransversal( R, [2,6] );
    [ [  ], [ 1 ], [ 3 ], [ 1, 2 ], [ 1, 3 ], [ 3, 2 ] ]
    gap> R:= RootSystem("E",8);;
    gap> p:= PositiveRootsNF(R);;
    gap> a:= WeylTransversal( R, [p[1],p[3],p[4],p[5],p[6],p[7],p[8],-p[120]] );;
    gap> Length(a);
    1920

##### 2.2-2 SizeOfWeylGroup

`‣ SizeOfWeylGroup`( R ) | ( operation )

`‣ SizeOfWeylGroup`( type ) | ( operation )

`‣ SizeOfWeylGroup`( X, n ) | ( operation )

In the first from R is a root system. In the second form type is a list of lists describing the type of a root system. For example: [["A",3],["B",5],["G",2]]. In the third form X is a letter (i.e., a string) and n a positive integer, so that Xn is the type of a root system. In all cases the number of elements of the Weyl group is returned.

    gap> R:= RootSystem( SimpleLieAlgebra("E",6,Rationals) );;
    gap> SizeOfWeylGroup(R);
    51840
    gap> SizeOfWeylGroup( [["E",6]] );
    51840
    gap> SizeOfWeylGroup( "E", 6 );
    51840

##### 2.2-3 WeylGroupAsPermGroup

`‣ WeylGroupAsPermGroup`( R ) | ( operation )

Here R is a root system. This function returns a permutation group whose set of elements is in bijection with the set of elements of the Weyl group of R. More precisely, this bijection works as follows.

Let n be the number of positive roots of R. We list the positive roots in the order in which they apppear in PositiveRootsNF( R ). To this list we append the negative roots, listed in the same order. Thus the list of roots is {α_1,...,α_2n}, where α_i+n = -α_i for 1≤ i≤ n. Then a reflection s_α corresponding to the root α corresponds to the permutation π_α, where s_α( α_i ) = α_i^π_α}. Note, however, that s_α acts from the left, whereas π_α acts from the right. Let W denote the Weyl group of R and let G be the group generated by the permutations π_α for α in the fixed set of simple roots of R. Then mapping s_α to π_α extends to an anti-isomorphism W-> G. The reason for doing it like this is that in the vast majority of literature on Lie theory the Weyl group acts from the left, but in GAP permutation groups act from the right. When applying the group that is output by this function this difference has to be kept in mind. For example, the orbit of a root β under W equals the set of images of β under the representatives of the left cosets of the stabilizer of β. But when we use the group G we have to consider the right cosets for this.

    gap> R:= RootSystem("E",6);
    <root system of type E6>
    gap> G:= WeylGroupAsPermGroup( R );
    <permutation group with 6 generators>
    gap> Size(G);
    51840

##### 2.2-4 ApplyWeylPermToWeight

`‣ ApplyWeylPermToWeight`( R, p, w ) | ( operation )

Here R is a root system, p is an element of the group returned by `WeylGroupAsPermGroup` (2.2-3) with input R. Here w is a weight, that the list of coefficients of a weight when written as a linear combination of fundamental weights. This function returns the result of acting with the element of the Weyl group corresponding to p on w.

    gap> R:= RootSystem("D",4);;
    gap> G:= WeylGroupAsPermGroup(R);
    <permutation group with 4 generators>
    gap> wt:= ApplyWeylPermToWeight( R, Random(G), [1,1,1,1] );;
    gap> ConjugateDominantWeight( WeylGroup(R), wt );
    [ 1, 1, 1, 1 ]

##### 2.2-5 WeylWordAsPerm

`‣ WeylWordAsPerm`( R, u ) | ( operation )

Here R is a root system, and u is an element of the Weyl group given as a (not necessarily reduced) word, that is, u is given by a list of indices between 1 and the rank of R. This function returns the permutation corresponding to u, that is, the image of u under the anti-iromorphism discussed in `WeylGroupAsPermGroup` (2.2-3).

    gap> R:= RootSystem("D",4);;
    gap> WeylWordAsPerm( R, [1,2,1,3,4,2,3,4,1] );
    (1,23,12,17)(2,10,14,22)(3,19,16,6)(4,18,15,7)(5,13,11,24)(8,21)(9,20)

##### 2.2-6 PermAsWeylWord

`‣ PermAsWeylWord`( R, p ) | ( operation )

This is the inverse operation to the one discussed in `WeylWordAsPerm` (2.2-5). That is, the element of the Weyl group (this time given as reduced expression) corresponding to the permutation p is returned.

In the next example we compute generators of the stabilizer of a subset of a root system. The generators are given as reduced words.

    gap> R:= RootSystem("D",4);;
    gap> rts:= [1,3,4,12,13,15,16,24];;
    gap> G:= WeylGroupAsPermGroup(R);;
    gap> S:= Stabilizer( G, rts, OnSets );
    <permutation group of size 64 with 6 generators>
    gap> Size(S);
    64
    gap> List( GeneratorsOfGroup(S), g -> PermAsWeylWord( R, g ) );
    [ [ 3 ], [ 3, 4 ], [ 2, 1, 3, 2, 4, 2, 1, 3, 2, 4 ], [ 2, 1, 3, 2 ],
      [ 2, 1, 4, 2 ], [ 1, 3 ] ]

#### 2.3 Lie Algebras and Their Modules

##### 2.3-1 IsomorphismOfSemisimpleLieAlgebras

`‣ IsomorphismOfSemisimpleLieAlgebras`( L1, L2 ) | ( operation )

Here L1 and L2 are two semisimple Lie algebras that are known to be isomorphic (i.e., they have the same type). This function returns an isomorphism.

##### 2.3-2 AdmissibleLattice

`‣ AdmissibleLattice`( V ) | ( operation )

Here V is a simple module over a semisimple Lie algebra. This function returns a basis of V that spans an admissible lattice in V. This means that for a root vector x of the acting Lie algebra the matrix exp( mx ) is integral, where mx denotes the matrix of x relative to the admissible lattice.

    gap> L:= SimpleLieAlgebra("G",2,Rationals);;
    gap> V:= HighestWeightModule( L, [2,0] );
    <27-dimensional left-module over <Lie algebra of dimension 14 over Rationals>>
    gap> B:=AdmissibleLattice(V);;
    gap> x:= L.1;
    v.1
    gap> mx:= MatrixOfAction( B, x );;
    gap> IsZero(mx^4); IsZero(mx^5);
    false
    true
    gap> exp:=Sum( List( [0..4], i -> mx^i/Factorial(i) ) );;
    gap> ForAll( Flat(exp), IsInt );
    true

##### 2.3-3 DirectSumDecomposition

`‣ DirectSumDecomposition`( V ) | ( operation )

Here V is a module over a semisimple Lie algebra; this function computes a list of sub-modules such that V is their direct sum.

    gap> L:= SimpleLieAlgebra("G",2,Rationals);;
    gap> V:= HighestWeightModule( L, [1,0] );;
    gap> W:= TensorProductOfAlgebraModules( V, V );
    <49-dimensional left-module over <Lie algebra of dimension 14 over Rationals>>
    gap> DirectSumDecomposition( W );
    [ <left-module over <Lie algebra of dimension 14 over Rationals>>,
      <left-module over <Lie algebra of dimension 14 over Rationals>>,
      <left-module over <Lie algebra of dimension 14 over Rationals>>,
      <left-module over <Lie algebra of dimension 14 over Rationals>> ]
    gap> List( last, Dimension );
    [ 27, 7, 14, 1 ]

##### 2.3-4 CharacteristicsOfStrata

`‣ CharacteristicsOfStrata`( L, hw ) | ( operation )

Here L is a semisimple Lie algebra over a field of characteristic 0. Secondly, hw is a dominant weight, represented as a list of non-negative integers (where the ordering of the fundamantal weights is given by the Cartan matrix of the root system of L). Let G denote the semisimple algebraic group acting on the irreducible representation with highest weight hw. Hesselink ([Hes79]) defined a stratification of the nullcone relative to the action of G. Popov and Vinberg ([VP89]) have described this stratification in terms of characteristics, which are elements of a Cartan subalgebra of L. To each characteristic there corresponds a stratum. This function is an implementation of an algorithm due to Popov ([Pop03]), for computing the characteristics of the strata. It returns a list of two lists. The first list contains the characteristics. The second list contains the dimensions of the corresponding strata. If the highest weight hw defines the adjoint representation, then the characteristics of the strata are exactly the characteristics of the nilpotent orbits in L. This means the following: let h be a characteristic, then there are e,f in L such that the triple h,e,f satisfies the commutation relations of mathfraksl_2, and the elements e thus obtained are the representatives of the nilpotent G-orbits in L.

    gap> L:= SimpleLieAlgebra("G",2,Rationals);;
    gap> L:= SimpleLieAlgebra("G",2,Rationals);;
    gap> CharacteristicsOfStrata( L, [0,1] );
    [ [ v.13+(2)*v.14, (2)*v.13+(3)*v.14, (2)*v.13+(4)*v.14, (6)*v.13+(10)*v.14 ],
      [ 6, 8, 10, 12 ] ]

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 Bib Ind

generated by GAPDoc2HTML