Operations on Elements

See Chapter Finitely Presented Groups for general functions for finitely presented groups or Chapter Permutation Groups for general functions for permutation groups.

Unlike groups of type GrpFP, elements of a group of type GrpFPCox are always converted into the normal form of Section The Normal Form for Words.

Example: Arithmetic with Coxeter Words (ex-8999bf)

Arithmetic with words.

> W<[s]> := CoxeterGroup(GrpFPCox, "G2");
> w1 := W![2,1,2,1,2] ;
> w1;
s[2] * s[1] * s[2] * s[1] * s[2]
> w2 := W![1,2,2,1,2,1];
> w2;
s[2] * s[1]
> w1 * w2;
s[1] * s[2] * s[1]
> W![1,2,1,2,1,2] eq W![2,1,2,1,2,1];
true

Run in calculator (opens in a new tab)

# w: GrpFPCoxElt -> RngIntElt
Length(w): GrpFPCoxElt -> RngIntElt
Length(W, w): GrpPermCox, GrpPermElt -> RngIntElt
CoxeterLength(w): GrpFPCoxElt -> RngIntElt
CoxeterLength(W, w): GrpPermCox, GrpPermElt -> RngIntElt

The length of \(w\) as an element of the Coxeter group \(W\), ie. the number of positive roots of \(W\) which become negative under the action of \(w\). The # operator does not work for permutation Coxeter group elements.

LongestElement(W): GrpFPCox -> SeqEnum
LongestElement(W): GrpPermCox -> GrpPermElt

The unique longest element of the Coxeter group \(W\).

CoxeterElement(W): GrpFPCox -> SeqEnum
CoxeterElement(W): GrpPermCox -> GrpPermElt

The Coxeter element of the Coxeter group \(W\), ie. the product of the generators of \(W\).

CoxeterNumber(W): GrpFPCox -> SeqEnum
CoxeterNumber(W): GrpPermCox -> GrpPermElt

The Coxeter number of the irreducible Coxeter group \(W\) (see [Car93, page 20]).

Example: Longest Elements and Coxeter Elements (ex-ba43d4)

Run in calculator (opens in a new tab)

> W<[s]> := CoxeterGroup(GrpFPCox, "F4");
> LongestElement(W);
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(W);
s[1] * s[2] * s[3] * s[4]
> W := CoxeterGroup("E8");
> Length(W, LongestElement(W));
120
> Length(W, CoxeterElement(W));
8

The Coxeter number can be described in a variety of ways.

> W := CoxeterGroup("D5");
> CoxeterNumber(W) eq Order(CoxeterElement(W));
true
> CoxeterNumber(W) eq #Roots(W) / Rank(W);
true
> R := RootDatum(W);
> CoxeterNumber(W) eq &+Eltseq(HighestRoot(R)) + 1;
true

Run in calculator (opens in a new tab)

LeftDescentSet(W, w): GrpFPCox, GrpFPCoxElt -> SetEnum
LeftDescentSet(W, w): GrpPermCox, GrpPermElt -> SetEnum

The set of indices \(r\) of simple roots of the Coxeter group \(W\) such that the length of the product \(s_rw\) is less than that of the element \(w\).

RightDescentSet(W, w): GrpFPCox, GrpFPCoxElt -> SetEnum
RightDescentSet(W, w): GrpPermCox, GrpPermElt -> SetEnum

The set of indices \(r\) of simple roots of the Coxeter group \(W\) such that the length of the product \(ws_r\) is less than that of the element \(w\).

Example: Left and Right Descent Sets (ex-e2a89d)
> W := CoxeterGroup("A5");
> x := W.1*W.2*W.4*W.5;
> LeftDescentSet(W, x);
{ 1, 4 }
> RightDescentSet(W, x);
{ 2, 5 }

Run in calculator (opens in a new tab)