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, $\{\}$ 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, $\{\}$ 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: Reflection Subgroups#
> W := CoxeterGroup("A4");
> P := StandardParabolicSubgroup(W, {1,2});
> Overgroup(P) eq W;
true
%%a> assert $1;
> 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)
Transversal(W, H): GrpPermCox, GrpPermCox {@ @}#

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 {@ @}#

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#
> 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
%%a> assert $1;
> x in Transversal(W, P);
true
%%a> assert $1;
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: Sum Dual#
> 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($)