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

Finitely presented Coxeter groups

Coxeter groups can be described in a standard manner as finitely presented groups. See Chapter FINITELY PRESENTED GROUPS for more details on finitely presented groups.

Subsections

Creation

CoxeterGroup( GrpFP, t ) : Cat, MonStgElt -> GrpFP
Construct the Coxeter group of Cartan type t as a finitely presented group, given by the standard Coxeter presentation. The Cartan type t is passed to this function as a string; we refer to Chapter ROOT DATA FOR LIE THEORY for details.

To construct a finitely presented group, given in standard Coxeter presentation, from other data, e.g. a Cartan matrix or a root datum, it is recommended to create a Coxeter group in category GrpCox first, and then create an FP Coxeter group as described in Subsection Conversion.


Example GrpCox_F4 (H36E12)

We create the Coxeter group of Cartan type F4 as an FP Coxeter group:

> F := CoxeterGroup(GrpFP, "F4");
> F;                             
Finitely presented group F on 4 generators
Relations
    (F.2 * F.3)^2 = (F.3 * F.2)^2
    F.1^2 = Id(F)
    F.1 * F.3 = F.3 * F.1
    F.2 * F.4 = F.4 * F.2
    F.1 * F.2 * F.1 = F.2 * F.1 * F.2
    F.2^2 = Id(F)
    F.3^2 = Id(F)
    F.3 * F.4 * F.3 = F.4 * F.3 * F.4
    F.4^2 = Id(F)
    F.1 * F.4 = F.4 * F.1

Conversion

CoxeterGroup( GrpFP, W ) : Cat, GrpCox -> GrpFP, Map
    Local: BoolElt                      Default: false
The FP Coxeter group F of the finite Coxeter group W, and the isomorphism W to F. The first argument must be the category GrpFP If the optional parameter Local is present, F is the appropriate subgroup of the FP version of the overgroup of W.
CoxeterGroup( F ) : GrpFP -> GrpCox, Map
The Coxeter group W of the FP Coxeter group F, and the isomorphism F to W.

Example GrpCox_FPCoxeterGroups (H36E13)

FP Coxeter groups can be used to convert between words and permutations.

> W := CoxeterGroup( "C5" );
> F<[s]>, h := CoxeterGroup( GrpFP, W );
> h( W.1*W.2 );
s[1] * s[2]
> hinv := Inverse( h );
> hinv( F![1,2,3,4,5,1,2,3,4] );
(1, 34, 46, 42, 28, 26, 9, 21, 17, 3)(2, 39, 16, 24, 29, 27, 14, 41, 49, 
    4)(5, 19, 25, 38, 48, 30, 44, 50, 13, 23)(6, 45, 32, 11, 33, 31, 20, 7, 
    36, 8)(10, 43, 40, 37, 47, 35, 18, 15, 12, 22)

Operations on FP Coxeter groups

LongestElement( F ) : GrpFP -> SeqEnum
The unique longest element in the FP Coxeter group F.
CoxeterElement( F ) : GrpFP -> SeqEnum
The Coxeter element in the FP Coxeter group F, ie. the product of the generators.
AdditiveOrder( F ) : GrpFP -> SeqEnum
An additive order on the positive roots of F, ie. a sequence containing the numbers 1, ..., N in some order so that alpha_r + alpha_s=alpha_t implies t is between r and s. This is computed using the techniques of [Pap94]

Example GrpCox_WordOperations (H36E14)

> W := CoxeterGroup( "F4" );
> F<[s]> := CoxeterGroup( GrpFP, W );
> LongestElement( F );
s[1] * s[2] * s[1] * s[3] * s[2] * s[1] * s[3] * s[2] * s[3] * s[4] * s[3] * 
s[2] * s[1] * s[3] * s[2] * s[3] * s[4] * s[3] * s[2] * s[1] * s[3] * s[2] * 
s[3] * s[4]
> CoxeterElement( F );
s[1] * s[2] * s[3] * s[4]
> AdditiveOrder( F );
[ 4, 7, 16, 10, 18, 20, 12, 21, 13, 22, 15, 23, 24, 17, 19, 3, 9, 6, 11, 14, 
8, 2, 5, 1 ]

Operations on words

WordProduct( F, w1, w2 ) : GrpFP, GrpFPElt, GrpFPElt -> GrpFPElt
The product w_1w_2 in the FP Coxeter group F. If w_1 and w_2 are reduced words, then the output will also be reduced. The words w_1 and w_2 may be given either as elements of F or as sequences of integers.
Reduce( F, w ) : GrpFP, GrpFPElt -> GrpFPElt
A reduced word for w in the FP Coxeter group F. The word w may be given either as an element of F or as a sequence of integers.
Inverse( F, w ) : GrpFP, GrpFPElt -> GrpFPElt
The inverse of w in the FP Coxeter group F. If w is a reduced word, then the output will also be reduced. The word w may be given either as an element of F or as a sequence of integers.
IsEqual( F, w1, w2 ) : GrpFP, GrpFPElt, GrpFPElt -> BoolElt
True if w_1 and w_2 are equal in the FP Coxeter group F. The words w_1 and w_2 may be given either as elements of F or as sequences of integers.

Example GrpCox_WordArithmetic (H36E15)

> W := CoxeterGroup( "G2" );
> F := CoxeterGroup( GrpFP, W );
> w1 := Reduce( F, [1,2,1,2,1] );
> w1;
s[1] * s[2] * s[1] * s[2] * s[1]
> w2 := Reduce( F, [1,2,2,1,2,1] );           
> w2;
s[2] * s[1]
> WordProduct( F, w1, Inverse( F, w2 ) );
s[1] * s[2] * s[1]
> IsEqual( F, [1,2,1,2,1,2], [2,1,2,1,2,1] );
true

Actions

Action( F ) : GrpFP -> Map
The action of the FP Coxeter group F on the indices of the (co)roots.
RootAction( F ) : GrpFP -> Map
CorootAction( F ) : GrpFP -> Map
    basis: MonStgElt                    Default: "standard"
The action of the FP Coxeter group F on the indices of the (co)root space.

Example GrpCox_Actions (H36E16)

The function Action gives an action on the indices of roots.

> W := CoxeterGroup( "I2(5)" );
> F<[s]> := CoxeterGroup( GrpFP, W );
> w := s[1] * s[2];
> act := Action( F );
> act(1,w);          
8
> act(8,w);          
9
The function RootAction gives an action on elements of the root space, including the roots themselves.

> W := CoxeterGroup( "I2(5)" );
> F<[s]> := CoxeterGroup( GrpFP, W );
> w := s[1] * s[2];
> act := RootAction( F );
> act([1,1],w);
(-z^3 - z^2 - 1              0)

Braid groups

BraidGroup( W ) : GrpCox -> GrpFP, Map
The braid group B of the Coxeter group W as a finitely presented group, together with the natural map W to B.
BraidGroup( F ) : GrpFP -> GrpFP, Map
The braid group B of the FP Coxeter group F as a finitely presented group, together with the projection B to F. The braid group is the group with the same generators and braid relations as F, but with no order relations.

PureBraidGroup( W ) : GrpCox -> GrpFP, Map
Returns the pure braid group of the Coxeter group W, i.e. the kernel of the epimorphism from the Braid group of W to W, as a finitely presented group.
PureBraidGroup( F ) : GrpFP -> GrpFP, Map
Returns the pure braid group of the FP Coxeter group F, i.e. the kernel of the epimorphism from the Braid group of F to F, as a finitely presented group.

Example GrpCox_BraidGroups (H36E17)

> W := CoxeterGroup( "B3" );
> F := CoxeterGroup( GrpFP, W );
> F;
Finitely presented group F on 3 generators
Relations
    (F.2 * F.3)^2 = (F.3 * F.2)^2
    F.1^2 = Id(F)
    F.1 * F.3 = F.3 * F.1
    F.1 * F.2 * F.1 = F.2 * F.1 * F.2
    F.2^2 = Id(F)
    F.3^2 = Id(F)
> B := BraidGroup( W );
> B;
Finitely presented group B on 3 generators
Relations
    (B.2 * B.3)^2 = (B.3 * B.2)^2
    B.1 * B.3 = B.3 * B.1
    B.1 * B.2 * B.1 = B.2 * B.1 * B.2
> P := PureBraidGroup( W );
> P;
Finitely presented group P on 3 generators
Generators as words
    P.1 = B.1^2
    P.2 = B.2^2
    P.3 = B.3^2

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