Reflection Subgroups

A reflection subgroup of a Coxeter group is a subgroup which is generated by a set of reflections. Note that reflection subgroups are also Coxeter groups. The most important class of reflection subgroups are the standard parabolic subgroups, which are generated by a subset of the simple roots. Given a set of indices \(J\subseteq \{1,\dots,\hbox{\tt Rank(W)}\}\), the corresponding standard parabolic is denoted \(W_J\). A parabolic subgroup is a subgroup which is conjugate to a standard parabolic subgroup. Note that in a reflection subgroup, the elements are given as permutations of the roots of the larger group.

Most of the functions in this section are currently only implemented for permutation Coxeter groups with a root datum (rather than a root system).

ReflectionSubgroup(W, a): GrpPermCox, SetEnum -> GrpPermCox

The reflection subgroup of the permutation Coxeter group \(W\) generated by the roots \(\alpha_{a_1},\dots,\alpha_{a_k}\) where \(a=\{a_1,\dots,a_k\}\) is a set of integers. This only works if \(W\) has an underlying root datum.

ReflectionSubgroup(W, s): GrpPermCox, [] -> GrpPermCox

The reflection subgroup of the permutation Coxeter group \(W\) generated by simple roots \(\alpha_{s_1},\dots,\alpha_{s_k}\) where \(s=[s_1,\dots,s_k]\) is a sequence of integers. In this version the roots must be simple in the root subdatum (ie. none of them may be a summand of another) otherwise an error is signalled. The simple roots will appear in the reflection subgroup in the given order. This only works if \(W\) has an underlying root datum.

StandardParabolicSubgroup(W, J): GrpPermCox, SetEnum -> GrpPermCox

The standard parabolic subgroup of the Coxeter group \(W\) generated by the simple roots \(\alpha_{j_1},\dots,\alpha_{j_k}\) where \(J=\{j_1,\dots,j_k\}\subseteq\{1,\dots,\hbox{\tt Rank(W)}\}\). This function works for both finitely presented and permutation Coxeter groups.

IsReflectionSubgroup(W, H): GrpPermCox, GrpPermCox -> BoolElt

Returns true if, and only if, \(H\) is a reflection subgroup of the permutation Coxeter group \(W\).

IsParabolicSubgroup(W, H): GrpPermCox, GrpPermCox -> BoolElt

Returns true if, and only if, \(H\) is a parabolic subgroup of the permutation Coxeter group \(W\).

IsStandardParabolicSubgroup(W, H): GrpPermCox, GrpPermCox -> BoolElt

Returns true if, and only if, \(H\) is a standard parabolic subgroup of the permutation Coxeter group \(W\).

Overgroup(H): GrpPermCox -> GrpPermCox

The overgroup of \(H\), ie. the Coxeter group whose roots are permuted by the elements of the permutation Coxeter subgroup \(H\).

Overdatum(H): GrpPermCox -> RootDtm

The root datum whose roots are permuted by the elements of the permutation Coxeter subgroup \(H\).

LocalCoxeterGroup(H): GrpPermCox -> GrpPermCox, Map

Given a Coxeter subgroup \(H\) this returns the Coxeter group \(L\) isomorphic to \(H\) but acting on the roots of \(H\) itself rather than the roots of its overgroup, together with the isomorphism \(L\to H\).

Example: Local Coxeter Group of a Parabolic Subgroup (ex-0f53d0)
> W := CoxeterGroup("A4");
> P := StandardParabolicSubgroup(W, {1,2});
> Overgroup(P) eq W;
true
> L, h := LocalCoxeterGroup(P);
> hinv := Inverse(h);
> L.1;
(1, 4)(2, 3)(5, 6)
> h(L.1);
(1, 11)(2, 5)(6, 8)(9, 10)(12, 15)(16, 18)(19, 20)
> hinv(h(L.1));
(1, 4)(2, 3)(5, 6)

Run in calculator (opens in a new tab)

Transversal(W, H): GrpPermCox, GrpPermCox -> SetIndx

The indexed set of (right) coset representatives of the reflection subgroup \(H\) of the Coxeter group \(W\). This contains the unique element of shortest length in each coset. The algorithm is due to Don Taylor (personal communication).

TransversalWords(W, H): GrpPermCox, GrpPermCox -> SetIndx

The indexed set of words of (right) coset representatives of the reflection subgroup \(H\) of the Coxeter group \(W\). The algorithm is due to Don Taylor (personal communication).

TransversalElt(W, H, x): GrpPermCox, GrpPermCox, GrpPermElt -> GrpPermElt

The representative of the coset \(Hx\) in the Coxeter group \(W\). This is the unique element of \(Hx\) of shortest length in \(W\) and also the unique element of \(Hx\) which sends every positive root of \(H\) to another positive root. The algorithm is due to Don Taylor (personal communication).

Example: Transversals of a Parabolic Subgroup (ex-a0c74a)
> W := CoxeterGroup("A4");
> P := StandardParabolicSubgroup(W, {1,2});
> x := W.1 * W.2 * W.3;
> x := TransversalElt(W, P, x);
> x eq W.3;
true
> x in Transversal(W, P);
true

Run in calculator (opens in a new tab)

TransversalElt(W, x, H): GrpPermCox, GrpPermElt, GrpPermCox -> GrpPermElt

The representative of the coset \(xH\) in the Coxeter group \(W\). This is the unique element of \(xH\) of shortest length in \(W\) and also the unique element of \(xH\) which sends every positive root of \(H\) to another positive root.

TransversalElt(W, H, x, J): GrpPermCox, GrpPermCox, GrpPermElt, GrpPermCox -> GrpPermElt

The representative of the coset \(HxJ\) in the Coxeter group \(W\). This is the unique element of \(HxJ\) of shortest length in \(W\) and also the unique element of \(HxJ\) which sends every positive root of \(HJ\) to another positive root.

Transversal(W, J): GrpFPCox, {RngIntElt} -> {@ GrpFPCoxElt @}
Transversal(W, J, L): GrpFPCox, {RngIntElt}, RngIntElt -> {@ GrpFPCoxElt @}

The set of right coset representatives of minimal length for the standard parabolic subgroup \(W_J \le W\). In the first form \(W\) must be finite and the result is a full transversal. In the second form \(W\) may be infinite, but the transversal produced is limited to words of length at most \(L\).

Transversal(W, J, K): GrpFPCox, {RngIntElt}, {RngIntElt} -> [ GrpFPCoxElt ], [ ]

The sequence of \(W_J,W_K\)-double cosets representatives of minimal length in \(W\). Restricted to \(W\) finite. The second return value gives the generators of the standard parabolic subgroup \(W_J\cap W_K^d\) for each double coset representative \(d\).

DirectProduct(W1, W2): GrpPermCox, GrpPermCox -> GrpPermCox

The direct product of the Coxeter groups \(W_1\) and \(W_2\).

Dual(W): GrpPermCox -> GrpPermCox

The dual of the Coxeter group \(W\), obtained by swapping the roots and coroots.

Example: Direct Sums and Duals (ex-4748b7)

Run in calculator (opens in a new tab)

> W1 := CoxeterGroup("G2");
> W2 := CoxeterGroup("C3");
> DirectProduct(W1, Dual(W2));
Coxeter group: Permutation group acting on a set of cardinality 30
Order = 576 = 2^6 * 3^2
    (1, 7)(2, 5)(3, 4)(8, 11)(9, 10)
    (1, 3)(2, 8)(5, 6)(7, 9)(11, 12)
    (13, 22)(14, 16)(17, 20)(19, 21)(23, 25)(26, 29)(28, 30)
    (13, 16)(14, 23)(15, 17)(18, 21)(22, 25)(24, 26)(27, 30)
    (14, 19)(15, 24)(16, 21)(23, 28)(25, 30)
> W1 := CoxeterGroup(GrpFPCox, "G2");
> W2 := CoxeterGroup(GrpFPCox, "A2");
> DirectProduct(W1, W2);
Coxeter group: Finitely presented group on 4 generators
Relations
    $.1 * $.2 * $.1 = $.2 * $.1 * $.2
    $.1 * $.3 = $.3 * $.1
    $.1 * $.4 = $.4 * $.1
    $.2 * $.3 = $.3 * $.2
    $.2 * $.4 = $.4 * $.2
    $.3 * $.4 * $.3 = $.4 * $.3 * $.4
    $.1^2 = Id($)
    $.2^2 = Id($)
    $.3^2 = Id($)
    $.4^2 = Id($)

Run in calculator (opens in a new tab)