Reflections#

An element of a Coxeter group is called a reflection if it is conjugate to one of the Coxeter generators.

In a permutation Coxeter group, the root \(\alpha\) acts on the root space via the reflection \(s_\alpha\); the coroot \(\alpha^\star\) acts on the coroot space via the coreflection \(s_\alpha^\star\).

IsReflection(w): GrpFPElt BoolElt#
IsReflection(w): GrpPermElt BoolElt, ., ., RngInt#

Returns true if, and only if, \(w\) is a reflection, i.e. \(w\) is conjugate to a Coxeter generator. If \(w\) is in a permutation Coxeter group, the root, coroot and root index are also returned.

Reflections(W): GrpFPCox [GrpFPCoxElt]#
Reflections(W): GrpPermCox [GrpPermElt]#

The sequence of reflections in the finite Coxeter group \(W\). If \(W\) is a permutation Coxeter group, the \(r\)th reflection in the sequence corresponds to the \(r\)th (co)root.

Example: Reflections#
> W<a,b> := CoxeterGroup(GrpFPCox, "A2");
> Reflections(W);
[ a, b, a * b * a, a, b, a * b * a ]
> IsReflection(a*b);
false
%%a> assert not $1;
SimpleReflections(W): GrpFPCox [GrpFPCoxElt]#
SimpleReflections(W): GrpPermCox [GrpPermElt]#

The sequence of simple reflections in the Coxeter group \(W\), ie, the generators of \(W\).

SimpleReflectionPermutations(W): GrpPermCox [GrpPermElt]#

The sequence of simple reflections in the permutation Coxeter group \(W\), ie, the generators of \(W\).

Reflection(W, r): GrpPermCox, RngIntElt GrpPermElt#
ReflectionPermutation(W, r): GrpPermCox, RngIntElt GrpPermElt#

The reflection in permutation Coxeter group \(W\) corresponding to the \(r\)th (co)root. If \(r=1,\dots,n\), this is a generator of \(W\).

SimpleReflectionMatrices(W): GrpPermCox []#
SimpleCoreflectionMatrices(W): GrpPermCox []#

Basis : MonStgElt : “Standard”

The matrices giving the action of the simple (co)roots on the (co)root space of the permutation Coxeter group \(W\).

ReflectionMatrices(W): GrpPermCox []#
CoreflectionMatrices(W): GrpPermCox []#

Basis : MonStgElt : “Standard”

The matrices giving the action of the (co)roots on the (co)root space of the permutation Coxeter group \(W\).

ReflectionMatrix(W, r): GrpPermCox, RngIntElt []#
CoreflectionMatrix(W, r): GrpPermCox, RngIntElt []#

Basis : MonStgElt : “Standard”

The matrix giving the action of the \(r\)th (co)root on the (co)root space of the permutation Coxeter group \(W\).

ReflectionWords(W): GrpPermCox []#

The sequence of words in the simple reflections for all the reflections of the Coxeter group \(W\). These words are given as sequences of integers. In other words, if \(a = [a_1,\dots,a_l] = \hbox{\tt ReflectionWords(W)[r]}\), then \(s_{\alpha_r} = s_{\alpha_{a_1}} \cdots s_{\alpha_{a_l}}\).

ReflectionWord(W, r): GrpPermCox, RngIntElt []#

The word in the simple reflections for the \(r\)th reflection of the Coxeter group \(W\). The word is given as a sequence of integers. In other words, if \(a = [a_1,\dots,a_l] = \hbox{\tt ReflectionWord(W,r)}\), then \(s_{\alpha_r} = s_{\alpha_{a_1}} \cdots s_{\alpha_{a_l}}\).

Example: Action#
> W := CoxeterGroup("B3");
> IsReflection(W.1*W.2);
false
%%a> assert not $1;
> mx := ReflectionMatrix(W, 4);
> perm := Reflection(W, 4);
> wd := ReflectionWord(W, 4);
> rt := VectorSpace(Rationals(), 3) ! Root(W,2);
> RootPosition(W, rt * mx) eq 2^perm;
true
%%a> assert $1;
> perm eq &*[ Reflection(W, r) : r in wd ];
true
%%a> assert $1;
>
> mx := CoreflectionMatrix(W, 4);
> CorootPosition(W, Coroot(W,2) * mx) eq 2^perm;
true
%%a> assert $1;