79 Algebraic groups and semi-simple elements

Let us fix an algebraically closed field K and let G be a connected reductive algebraic group over K. Let T be a maximal torus of G, let X(T) (resp. Y(T)) be the character group of T and Φ (resp Φ) the roots (resp. coroots) of G with respect to T.

Then G is determined up to isomorphism by the root datum (X(T),Φ, Y(T),Φ). In algebraic terms, this consists in giving in the free Z-lattice X(T) of rank r, the rank of G, a root system Φ, and giving the dual roots Φ in the dual lattice Y(T).

This corresponds to a slight generalization of our setup for Coxeter groups. This time we take as canonical basis of our vector space V the canonical basis of X(T), and Φ is determined by the matrix whose lines are the simple roots expressed in this basis of V. Similarly Φ is described by the matrix whose lines are the simple coroots in the canonical basis of Y(T).

This correspond to a new form of the function CoxeterGroup, where the arguments are two matrices, one whose lines are the roots expressed in a basis of V, and the second whose lines are the coroots expressed in the corresponding dual basis of V. The roots need not generate V. For

instance, the root datum of the linear group of rank 3 can be specified as:

    gap> W := CoxeterGroup( [ [ -1, 1, 0], [ 0, -1, 1 ] ], 
    >                       [ [ -1, 1, 0], [ 0, -1, 1 ] ] );
    CoxeterGroup([ [ -1, 1, 0 ], [ 0, -1, 1 ] ], 
    [ [ -1, 1, 0 ], [ 0, -1, 1 ] ])
    gap> MatXPerm( W, W.1);
    [ [ 0, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 1 ] ]

here we have represented the symmetric group on 3 letters as the permutation of the basis vectors of V --- the semi-simple rank is 2; here the integral elements of V correspond to the characters of a maximal torus, and the integral elements of V to one-parameter subgroups of that torus.

The default form CoxeterGroup("A",2) corresponds to the adjoint algebraic group (the group with a trivial center). In that case Φ is a basis of X(T), so the matrix describing the simple roots is the identity matrix and the matrix describing the simple coroots is the Cartan matrix of the root system. The form CoxeterGroup("A",2,"sc") constructs the semisimple simply connected algebraic group, where the matrix describing the simple roots is the transposed of the Cartan matrix and the matrix describing the simple coroots is the identity matrix.

It is also possible to compute with finite order elements of T. Over an algebraically closed field, finite order elements of T are in bijection with elements of Q/Z⊗ Y(T) whose denominator is prime to the characteristic of the field. These are represented as elements of a vector space of rank r over Q, taken Mod1 whenever the need arises, where Mod1 is the function which replaces the numerator of a fraction with the numerator mod the denominator. Here is an example of computations with semisimple-elements.

    gap> G:=CoxeterGroup("A",3,"sc");
    CoxeterGroup("A",3,"sc")
    gap> L:=ReflectionSubgroup(G,[1,3]);
    ReflectionSubgroup(CoxeterGroup("A",3,"sc"), [ 1, 3 ])
    gap> AlgebraicCentre(L);
    rec(
      Z0 := [ [ 1, 2, 1 ] ],
      AZ := Group( <0,0,1/2> ),
      complement := [ [ 0, 1, 0 ], [ 0, 0, 1 ] ] )
    gap> SemisimpleSubgroup(G,last.Z0,3);
    Group( <1/3,2/3,1/3> )
    gap> Elements(last);
    [ <0,0,0>, <1/3,2/3,1/3>, <2/3,1/3,2/3> ]
    gap> s:=last[2];
    <1/3,2/3,1/3>

First, the group G=SL4 is constructed, and its Levi L of block-diagonal matrices with 2x 2 blocks. The function AlgebraicCentre returns a record with three fields: a basis of the sub-lattice Y(Z0) of Y(T), where Z0 is the connected component of the identity in the centre Z of L, a basis of a complement lattice of Y(Z0) in Y(T) representing a subtorus S of T complement to Z0, and semi-simple elements which are representatives of the classes of Z modulo Z0 , chosen in S. Then the semi-simple elements of order 3 in Z0 are computed. To define a semisimple element, the ambient Weyl group is given as an argument. This allows to know the action of W on the semi-simple elements. To go on from the previous example:

    gap> s^G.2;
    <1/3,0,1/3>
    gap> Orbit(G,s);
    [ <1/3,2/3,1/3>, <1/3,0,1/3>, <2/3,0,1/3>, <1/3,0,2/3>, <2/3,0,2/3>, 
      <2/3,1/3,2/3> ]

The function SemisimpleCentralizer computes the centralizer CG(s) of a semisimple element in G:

    gap> G:=CoxeterGroup("A",3);
    CoxeterGroup("A",3)
    gap> s:=SemisimpleElement(G,[0,1/2,0]);
    <0,1/2,0>
    gap> SemisimpleCentralizer(G,s);
    Extended(ReflectionSubgroup(CoxeterGroup("A",3), [ 1, 3 ]),<(1,3)>)

The result is an extended reflection group; the reflection group part is the Weyl group of CG0(s) and the extended part are representatives of CG(s) modulo CG0(s) taken as diagram automorphisms of the reflection part.

Subsections

  1. CoxeterGroup
  2. IntermediateGroup
  3. Mod1
  4. SemisimpleElement
  5. Operations for Semisimple elements
  6. SemisimpleCentralizer
  7. AlgebraicCentre
  8. SemisimpleSubgroup
  9. IsIsolated
  10. IsQuasiIsolated
  11. AlgebraicFundamentalGroup
  12. QuasiIsolatedRepresentatives

79.1 CoxeterGroup

CoxeterGroup( simpleRoots, simpleCoroots[, omega] )

CoxeterGroup( C[, "sc"][, omega] )

CoxeterGroup( type1, n1, ... , typek, nk[, "sc"][, omega] )

Here we describe the extended forms of the function CoxeterGroup allowing to specify more general root data. In the first form a set of roots is given explicitly as the lines of the matrix simpleRoots, representing vectors in a vector space V, as well as a set of coroots as the lines of the matrix simpleCoroots expressed in the dual basis of V. The product C=simpleCoroots*TransposedMat(simpleRoots) must be a valid Cartan matrix. The dimension of V can be greater than Length(C). The length of C is called the semisimple rank of the Coxeter datum, while the dimension of V is called its rank.

In the second form C is a Cartan matrix, and the call CoxeterGroup(C) is equivalent to CoxeterGroup(IdentityMat(Length(C)),C). The new situation is when the optional "sc" argument is given; then the situation is reversed: the simple coroots are given by the identity matrix, and the simple roots by the transposed of C (this corresponds to the embedding of the root system in the lattice of characters of a maximal torus in a simply connected algebraic group).

The argument "sc" can also be given in the third form with the same effect.

There are two additional fields in a Coxeter group record which complete the description of the corresponding root datum:

simpleRoots:

the matrix of simple roots

simpleCoroots:

the matrix of simple coroots

matgens:

the matrices (in row convention) of the simple reflections of the Coxeter group with respect to the basis consisting of the simple root vectors.

This function requires the package "chevie" (see RequirePackage).

79.2 IntermediateGroup

IntermediateGroup(W, indices)

This computes a Weyl group record representing an algebraic group intermediate between the adjoint group --- obtained by a call like CoxeterGroup("A",3)--- and the simply connected semi-simple group --- obtained by a call like CoxeterGroup("A",3,"sc"). The group is specified by specifying a subset of the minuscule weights. A minuscule weight is a fundamental weight which has scalar product in -1,0,1 with every root. The non-trivial elements of the (algebraic) center of a semi-simple simply connected algebraic group are in bijection with the minuscule weights. The minuscule weights are specified, if W is irreducible, by the list indices of their index. If W has several components, the elements of indices should be themselves lists of length the number of components specifying a minuscule weight in each component; a weight is minuscule if its projection to each component is itself minuscule. The group specified is the one whose center is the quotient of that of the semisimple simply connected group by the subgroup generated by the given minuscule weights.

    gap> IntermediateGroup(W,[]); # simply connected
    CoxeterGroup([ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 2, 4 ] ],
     [ [ 2, -1, 0 ], [ -1, 2, -1 ], [ 0, -1, 1 ] ])
    gap> IntermediateGroup(W,[1]); # adjoint
    CoxeterGroup("A",3)
    gap> IntermediateGroup(W,[2]); # intermediate
    CoxeterGroup([ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 2 ] ],
     [ [ 2, -1, -1 ], [ -1, 2, 0 ], [ 0, -1, 1 ] ])

This function requires the package "chevie" (see RequirePackage).

79.3 Mod1

Mod1(r)

This is a utility function for working in Q/Z. The argument should be a rational or a list. If r is a rational, it returns (Numerator(r) mod Denominator(r))/Denominator(r). If r is a list, it returns List(r,Mod1).

    gap> Mod1([-2/3,-1,7/4,3]);
    [ 1/3, 0, 3/4, 0 ]

This function requires the package "chevie" (see RequirePackage).

79.4 SemisimpleElement

SemisimpleElement(W,v)

W should be a root datum, given as a Coxeter group record for a Weyl group, and v a list of rationals of length W.rank. The result is a semisimple element record, which has the fields:

.v:
the given vector of rationals, taken Mod1.

.group:
the parent of the group W.

    gap> G:=CoxeterGroup("A",3);;
    gap> s:=SemisimpleElement(G,[0,1/2,0]);
    <0,1/2,0>

This function requires the package "chevie" (see RequirePackage).

79.5 Operations for Semisimple elements

The arithmetic operations *, / and ^ work for complex numbers. They also have Print and String methods.

   gap> G:=CoxeterGroup("A",3);
   CoxeterGroup("A",3)
   gap> s:=SemisimpleElement(G,[0,1/2,0]);
   <0,1/2,0>
   gap> t:=SemisimpleElement(G,[1/2,1/3,1/7]);
   <1/2,1/3,1/7>
   gap> s*t;
   <1/2,5/6,1/7>
   gap> t^3;
   <1/2,0,3/7>
   gap> t^-1;
   <1/2,2/3,6/7>
   gap> t^0;
   <0,0,0>
   gap> String(t);
   "<1/2,1/3,1/7>"

The operation ^ also works for applying an element of its defining Weyl

group to a semisimple element, which allows orbit computations:

   gap> s^W.2;
   <1/2,1/2,1/2>
   gap> Orbit(W,s);
   [ <0,1/2,0>, <1/2,1/2,1/2>, <1/2,0,1/2> ]

This function requires the package "chevie" (see RequirePackage).

79.6 SemisimpleCentralizer

SemisimpleCentralizer( W, s)

W should be a Weyl group record and s a semisimple element for W. This function returns the stabilizer of the semisimple element s in W, which describes also CG(s), if G is the algebraic group described by W. The stabilizer is an extended reflection group, with the reflection group part equal to the Weyl group of CG0(s), and the diagram automorphism part being those induced by CG(s)/CG0(s) on CG0(s).

    gap> G:=CoxeterGroup("A",3);
    CoxeterGroup("A",3)
    gap> s:=SemisimpleElement(G,[0,1/2,0]);
    <0,1/2,0>
    gap> SemisimpleCentralizer(G,s);
    Extended(ReflectionSubgroup(CoxeterGroup("A",3), [ 1, 3 ]),<(1,3)>)

This function requires the package "chevie" (see RequirePackage).

79.7 AlgebraicCentre

AlgebraicCentre( W )

W should be a Weyl group record, that is a Coxeter group record where .simpleRoots and .simpleCoroots are integral, or an extended Weyl group record. This function returns a description of the centre Z of the algebraic group defined by W (it is a non-connected group for an extended Weyl group) as a record with the following fields:

Z0:
A basis of Y(Z0) (with respect to the canonical basis of Y(T))

complement:
A basis of Y(S), a complement lattice to Z0 in Y(T) where S is a complement torus to Z0 in T.

AZ:
representatives of A(Z):=Z/Z0 given as a subgroup of S (that is, elements of Q/Z⊗ Y(S)). For the moment this is not implemented for non-connected groups.

    gap> G:=CoxeterGroup("A",3,"sc");
    CoxeterGroup("A",3,"sc")
    gap> L:=ReflectionSubgroup(G,[1,3]);
    ReflectionSubgroup(CoxeterGroup("A",3,"sc"), [ 1, 3 ])
    gap> AlgebraicCentre(L);
    rec(
      Z0 := [ [ 1, 2, 1 ] ],
      AZ := Group( <0,0,1/2> ),
      complement := [ [ 0, 1, 0 ], [ 0, 0, 1 ] ] )
    gap>  G:=CoxeterGroup("A",3);;
    gap> s:=SemisimpleElement(G,[0,1/2,0]);;
    gap> SemisimpleCentralizer(G,s);;
    Extended(ReflectionSubgroup(CoxeterGroup("A",3), [ 1, 3 ]),<(1,3)>)
    gap> AlgebraicCentre(last);
    rec(
      Z0 := [  ],
      complement := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] )

This function requires the package "chevie" (see RequirePackage).

79.8 SemisimpleSubgroup

SemisimpleSubgroup( W, V, n )

This function returns the subgroup of semisi-simple elements of order dividing n in the subtorus S of the standard torus T represented by V, an integral basis of the sublattice Y(S) of Y(T).

    gap> G:=CoxeterGroup("A",3,"sc");;
    gap> L:=ReflectionSubgroup(G,[1,3]);;
    gap> z:=AlgebraicCentre(L);;
    gap> z.Z0;
    [ [ 1, 2, 1 ] ]
    gap> SemisimpleSubgroup(G,z.Z0,3);
    Group( <1/3,2/3,1/3> )
    gap> Elements(last);
    [ <0,0,0>, <1/3,2/3,1/3>, <2/3,1/3,2/3> ]

This function requires the package "chevie" (see RequirePackage).

79.9 IsIsolated

IsIsolated(W,s)

s should be a semi-simple element for the algebraic group G specified by the Weyl group record W. A semisimple element s of an algebraic group G is isolated if the connected component CG0(s) does not lie in a proper parabolic subgroup of G. This function tests this condition.

   gap> QuasiIsolatedRepresentatives(CoxeterGroup("E",6));
   [ <0,0,0,0,0,0>, <0,0,0,0,1/2,0>, <0,0,0,1/3,0,0>, <0,1/6,1/6,0,1/6,0>, 
     <1/3,0,0,0,0,1/3> ]
   gap> Filtered(last,x->IsIsolated(W,x));
   [ <0,0,0,0,0,0>, <0,0,0,0,1/2,0>, <0,1/6,1/6,0,1/6,0> ]

This function requires the package "chevie" (see RequirePackage).

79.10 IsQuasiIsolated

IsQuasiIsolated(W,s)

s should be a semi-simple element for the algebraic group G specified by the Weyl group record W. A semisimple element s of an algebraic group G is quasi-isolated if CG(s) does not lie in a proper parabolic subgroup of G. This function tests this condition.

   gap> QuasiIsolatedRepresentatives(CoxeterGroup("E",6));
   [ <0,0,0,0,0,0>, <0,0,0,0,1/2,0>, <0,0,0,1/3,0,0>, <0,1/6,1/6,0,1/6,0>, 
     <1/3,0,0,0,0,1/3> ]
    gap> Filtered(last,x->IsQuasiIsolated(ReflectionSubgroup(W,[1,3,5,6]),x));
   [ <0,0,0,0,0,0>, <0,0,0,1/3,0,0> ]

This function requires the package "chevie" (see RequirePackage).

79.11 AlgebraicFundamentalGroup

AlgebraicFundamentalGroup(W)

This function returns the fundamental group corresponding to the Weyl group record W as diagram automorphisms of the corresponding affine Weyl group induced by W, thus as a subgroup of W.

   gap> W:=CoxeterGroup("A",3);
   CoxeterGroup("A",3)
   gap> AlgebraicFundamentalGroup(W);
   Subgroup( CoxeterGroup("A",3), [ ( 1, 2, 3,12)( 4, 5,10,11)( 6, 7, 8, 9) ] )
   gap> W:=CoxeterGroup("A",3,"sc"); 
   CoxeterGroup("A",3,"sc")
   gap> AlgebraicFundamentalGroup(W);
   Subgroup( CoxeterGroup("A",3,"sc"), [  ] )

This function requires the package "chevie" (see RequirePackage).

79.12 QuasiIsolatedRepresentatives

QuasiIsolatedRepresentatives(W)

W should be a Weyl group record corresponding to an algebraic group G. This function returns a list of semisimple elements for G, which are representatives of the G-orbits of quasi-isolated semisimple elements. It follows the algorithm given by C. Bonnafé in Bon05.

    gap> W:=CoxeterGroup("E",6);;QuasiIsolatedRepresentatives(W);
    [ <0,0,0,0,0,0>, <0,0,0,0,1/2,0>, <0,0,0,1/3,0,0>, <0,1/6,1/6,0,1/6,0>, 
      <1/3,0,0,0,0,1/3> ]
    gap> List(last,x->IsIsolated(W,x));
    [ true, true, true, false, false ]
    gap> W:=CoxeterGroup("E",6,"sc");;QuasiIsolatedRepresentatives(W);
    [ <0,0,0,0,0,0>, <1/3,0,2/3,0,1/3,2/3>, <1/2,0,0,1/2,0,1/2>, 
      <2/3,0,1/3,0,1/3,2/3>, <2/3,0,1/3,0,2/3,1/3>, <2/3,0,1/3,0,2/3,5/6>, 
      <5/6,0,2/3,0,1/3,2/3> ]
    gap> List(last,x->IsIsolated(W,x));
    [ true, true, true, true, true, true, true ]

This function requires the package "chevie" (see RequirePackage). Previous Up Next
Index

GAP 3.4.4
April 1997