CoxeterGroup( simpleRoots, simpleCoroots[, omega] )
CoxeterGroup( C[, "sc"][, omega] )
CoxeterGroup( type1, n1, ... , typek, nk[, "sc"][, omega] )
CoxeterGroup( rec )
This function returns a permutation group record containing the basic
information about the Coxeter group and the root system determined by its
arguments. 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 Vdual. 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)
.
In this case, the root system is embedded in the lattice of integral vectors of V like the root system of an adjoint algebraic reductive group in the lattice of characters of a maximal torus.
If the optional "sc"
argument is given, 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 third form is equivalent to
CoxeterGroup(CartanMat(type1, n1, ..., typek, nk)
[, "sc"][, omega])
.
The resulting record, that we will call a Coxeter datum, has additional entries describing various information on the root system and Coxeter group that we describe below.
The argument omega in one of the first three forms can be used to specify a group of automorphisms of the Coxeter datum, that is, a group of invertible linear transformations of V which preserve the set of roots and whose adjoint maps preserve the set of coroots. When the rank is equal to the semisimple rank (we then say that the Coxeter datum is semisimple), this can be given as a permutation group (on the roots). Otherwise it must be given as a matrix group.
The last form takes as an argument a record which has a field coxeter
and returns the value of this field. This is used to return the Coxeter
group of objects derived from Coxeter groups, such as Coxeter cosets,
Hecke algebras and braid elements.
We document the following entries in a Coxeter datum record which are guaranteed to remain present in future versions of the package. Other undocumented entries should not be relied upon, they may change without notice.
isCoxeterGroup
, isDomain
, isGroup
, isPermGroup
, isFinite
:true
cartan
:
simpleRoots
:
simpleCoroots
:
semisimpleRank
:
rank
:TransposedMat(.simpleRoots)
N
:
roots
:N
roots are positive,
the next N
are the corresponding negative roots. Moreover, the
first semisimpleRank
roots are the fundamental roots
corresponding to the rows of C. The positive roots are ordered
by increasing height.
coroots
:
rootLengths
:
orbitRepresentative
:roots
, which
for each root, gives the smallest index of a root in the same
W-orbit.
orbitRepresentativeElements
:roots
, which
for the i-th root, gives an element w of W of minimal
length such that i=orbitRepresentative[i]^w
.
matgens
:
generators
:semisimpleRank
roots.
omega
:
gap> W := CoxeterGroup( "A", 4 );; gap> PrintArray( W.cartan ); [ [ 2, -1, 0, 0 ], [ -1, 2, -1, 0 ], [ 0, -1, 2, -1 ], [ 0, 0, -1, 2 ] ] gap> W.matgens; [ [ [ -1, 0, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], [ [ 1, 1, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 1, 1 ] ], [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 0, 0, 0, -1 ] ] ] gap> W.roots; [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ], [ 1, 1, 0, 0 ], [ 0, 1, 1, 0 ], [ 0, 0, 1, 1 ], [ 1, 1, 1, 0 ], [ 0, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, -1 ], [ -1, -1, 0, 0 ], [ 0, -1, -1, 0 ], [ 0, 0, -1, -1 ], [ -1, -1, -1, 0 ], [ 0, -1, -1, -1 ], [ -1, -1, -1, -1 ] ]
This function requires the package "chevie" (see RequirePackage).
GAP 3.4.4