# 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 (ex-7fa1b2)`

```magma
> W<a,b> := CoxeterGroup(GrpFPCox, "A2");
> Reflections(W);
[ a, b, a * b * a, a, b, a * b * a ]
> IsReflection(a*b);
false

```

## `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 -> []`

```magma
Basis: MonStgElt                    Default: "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 -> []`

```magma
Basis: MonStgElt                    Default: "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 -> []`

```magma
Basis: MonStgElt                    Default: "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 (ex-56c975)`

```magma
> W := CoxeterGroup("B3");
> IsReflection(W.1*W.2);
false
> 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
> perm eq &*[ Reflection(W, r) : r in wd ];
true
>
> mx := CoreflectionMatrix(W, 4);
> CorootPosition(W, Coroot(W,2) * mx) eq 2^perm;
true

```
