Construction of Pseudo- reflections#
Let \(V\) be a vector space of dimension \(n\) over a field \(F\). As defined in Bourbaki [Bourbaki, 1968], a pseudo-reflection in Magma is a linear transformation of \(V\) whose space of fixed points is a subspace of dimension \(n-1\), namely a hyperplane. (Some authors require a pseudo-reflection to be invertible and diagonalisable.)
A reflection, as defined above, is a pseudo-reflection and so too is a transvection. The Magma package described in this chapter includes code for the construction of transvections but the emphasis is on groups generated by reflections.
If \(r\) is a pseudo-reflection, then \(\dim(\im(1-r)) = 1\) and a basis element of \(\im(1-r)\) is called a root of \(r\).
Let \(a\) be a root of the pseudo-reflection \(r\) and let \(H = \ker(1-r)\) be the hyperplane of fixed points of \(r\). For all \(v\in V\) there exists \(\phi(v) \in F\) such that \(v - vr = \phi(v)a\). Then \(\phi\in V^*\) and \(\ker\phi = H\). This means that every pseudo-reflection has the form
and its determinant is \(1-\phi(a)\). The linear functional \(\phi\) is a coroot of \(r\).
\(\bullet\) If \(\phi(a) = 1\), then \(r\) is not invertible; it is the projection of \(V\) onto \(H\) along \(a\).
\(\bullet\) If \(\phi(a) = 0\) (equivalently, \(a\in H\)), then \(r\) is by definition a transvection.
\(\bullet\) If \(\phi(a) \ne 0,1\), then \(r\) is called a reflection. For the most part we consider only reflections of finite order, but not necessarily of order two.
In “ both \(V\) and its dual space \(V^*\) are identified with the space \(F^n\) of row vectors of length \(n\) and the standard bilinear pairing between \(V\) and \(V^*\) is \((a,b) \mapsto ab^\tr\), where \(b^\tr\) denotes the column vector which is the transpose of \(b\).
The row vector \(b\) which represents the coroot \(\phi\) is also called a coroot of the pseudo-reflection; it is uniquely determined by \(r\) and \(a\). The matrix of \(r\) is
and, in particular, \(ar = (1-ab^\tr)a\). Thus \(r\) is a reflection of finite order \(d\) if and only if \(ab^\tr \ne 0, 1\) and \(1-ab^\tr\) is a \(d\)-th root of unity.
- PseudoReflection(a, b): ModTupRngElt, ModTupRngElt AlgMatElt#
The matrix of the pseudo-reflection with root \(a\) and coroot \(b\).
- Transvection(a, b): ModTupRngElt, ModTupRngElt AlgMatElt#
The matrix of the transvection with root \(a\) and coroot \(b\). The input is checked to ensure that the root and coroot define a transvection.
- Reflection(a, b): ModTupRngElt, ModTupRngElt AlgMatElt#
The matrix of the reflection with root \(a\) and coroot \(b\). The input is checked to ensure that the root and coroot define a reflection.
- IsPseudoReflection(r): Mtrx BoolElt, ModTupRngElt, ModTupRngElt#
Returns
trueif \(r\) is the matrix of a pseudo-reflection, in which case a root and a coroot are returned as well.
- IsTransvection(r): Mtrx BoolElt, ModTupRngElt, ModTupRngElt#
Returns
trueif \(r\) is the matrix of a transvection, in which case a root and a coroot are returned as well.
- IsReflection(r): Mtrx BoolElt, ModTupRngElt, ModTupRngElt#
Returns
trueif \(r\) is the matrix of a reflection, in which case a root and a coroot are returned as well.
- IsReflectionGroup(G): GrpMat BoolElt#
Strict : BoolElt : true
The default action is to return true if every generator of \(G\) is a
reflection. If Strict is false, the function checks if \(G\) can be
generated by some of its reflections, not necessarily those returned by
Generators(G).
- Example: pseudoreflection#
Create a pseudo-reflection directly and then check that it is a transvection.
> V := VectorSpace(GF(5), 3); > t := PseudoReflection(V![1,0,0],V![0,1,0]); > t; [1 0 0] [4 1 0] [0 0 1] > IsTransvection(t); true (1 0 0) (0 1 0) > IsReflection(t); false %%a> assert not $1;
- Example: Ref Group#
An example of a group which can be generated by reflections even though not every given generator is a reflection.
To find reflection generators for this group we look for a reflection which, together with the reflection \(r\), generates \(G\). (This is a rather special example; not every finite reflection group of rank two can be generated by two reflections.)
> F<omega> := CyclotomicField(3); > r := Matrix(F,2,2,[1,omega^2,0,omega]); > IsReflection(r); true ( 0 -omega + 1) (1/3*(2*omega + 1) 1) > s := Matrix(F,2,2,[0,-1,1,0]); > IsReflection(s); false %%a> assert not $1; > G := MatrixGroup<2,F | r,s >; > IsReflectionGroup(G); false %%a> assert not $1; > IsReflectionGroup(G : Strict := false); true %%a> assert $1; > #G; 24 %%a> assert $1 eq 24; > exists(t){ t : t in G | IsReflection(t) and G eq sub<G|r,t> }; true %%a> assert $1; > t; [ 0 omega + 1] [ 1 -omega]
- Example: transvections#
The groups \({\operatorname{SL}}(n,q)\) are generated by transvections. To illustrate this we find representatives for the conjugacy classes of \({\operatorname{GL}}(3,25)\) which are transvections and then check that the normal closure is \({\operatorname{SL}}(3,25)\).
> G := GL(3,25); > ccl := Classes(G); > T := [ c : c in ccl | IsTransvection(c[3]) ]; > #T; 1 %%a> assert $1 eq 1; > t := T[1][3]; t; [ 1 0 0] [ 0 1 1] [ 0 0 1] > S := ncl< G | t >; > S eq SL(3,25); true %%a> assert $1;
Pseudo-reflections Preserving Reflexive Forms#
Let \(J\) be the matrix of a non-degenerate reflexive bilinear or sesquilinear form \(\beta\) on the vector space \(V\) over a field \(F\). Then \(\beta\) is either a symmetric, alternating or hermitian form.
We may assume that \(F\) is equipped with an automorphism \(\sigma\) such that \(\sigma^2 = 1\). If \(\beta\) is a symmetric or alternating form, \(\sigma\) is the identity; if \(\beta\) is hermitian, the order of \(\sigma :\alpha \mapsto \bar\alpha\) is two and \(J = \bar J^\tr\). If \(a\) is the row vector \((\alpha_1,\alpha_2,\dots,\alpha_n)\), define \(\sigma(a) = (\sigma(\alpha_1),\sigma(\alpha_2),\dots,\sigma(\alpha_n))\).
If \(a\) is a root of a pseudo-reflection \(r\) and if \(r\) preserves \(\beta\), then the coroot of \(r\) is \(\alpha \sigma(a) J^\tr\) for some \(\alpha\in F\). Thus the matrix of \(r\) is \(I-\alpha J^\tr\sigma(a)^\tr a\).
- SymplecticTransvection(a, alpha): ModTupRngElt, FldElt AlgMatElt#
The symplectic transvection with root \(a\) and multiplier \(\alpha\) with respect to the form attached to the parent of \(a\). If the form is not alternating a runtime error is generated.
If \(\beta\) is a non-degenerate alternating form preserved by a pseudo-reflection \(r\), then the dimension of \(V\) is even and \(r\) must be a transvection. If \(a\) is a root of \(r\), the coroot is \(\alpha aJ^\tr\) and the matrix of \(r\) is \(I - \alpha J a^\tr a\), for some \(\alpha\ne 0\) in \(F\).
- UnitaryTransvection(a, alpha): ModTupRngElt, FldElt AlgMatElt#
The unitary transvection with root \(a\) and multiplier \(\alpha\) with respect to the hermitian form attached to the parent of \(a\).
The matrix of the unitary transvection is \(I - \alpha J\bar a^\tr a\), where \(a\) is isotropic and the trace of \(\alpha\) is \(0\); that is, \(a J \bar a^\tr = 0\) and \(\alpha + \bar\alpha = 0\).
A runtime error is generated if the form is not hermitian, if \(a\) is not isotropic, or if the trace of \(\alpha\) is not \(0\).
- UnitaryReflection(a, zeta): ModTupRngElt, FldElt AlgMatElt#
The unitary reflection with root \(a\) and determinant \(\zeta\), where \(\zeta\) is a root of unity. The reflection preserves the hermitian form attached to the ambient space of \(a\) and sends \(a\) to \(\zeta a\).
In the case of a unitary reflection \(r\) with matrix \(I-\alpha J^\tr\sigma(a)^\tr a\), the root \(a\) must be non-isotropic and \(ar = \zeta a\), where \(\zeta\) is a root of unity. Therefore, \(\alpha = (1-\zeta)/aJ\bar a^\tr\).
The vector \(a^\vee = \bar\alpha a\) is the coroot of \(a\) and the definition of \(r\) becomes
\[v r = v - \beta(v,a^\vee)a.\]
- OrthogonalReflection(a): ModTupFldElt AlgMatElt#
The reflection determined by a non-singular vector \(a\) of a quadratic space.
A quadratic space is a vector space \(V\) equipped with a quadratic form \(Q\) (see Chapter AlgClff for more details). The polar form of \(Q\) is the symmetric bilinear form \(\beta(u,v) = Q(u+v)-Q(u)-Q(v)\). Thus \(\beta(v,v) = 2Q(v)\) and therefore, if the characteristic of \(F\) is not two, \(Q\) is uniquely determined by \(\beta\).
If \(a\) is non-singular (that is, \(Q(a) \ne 0\)), the formula
\[vr = v - Q(a)^{-1}\beta(v,a)a\]defines a pseudo-reflection. If the characteristic of \(F\) is 2, this is a transvection; in all other cases it is a reflection. However, in characteristic 2 there is a certain ambivalence in the literature and the pseudo-reflections just defined are often called reflections.
The coroot of \(a\) is \(a^\vee = Q(a)^{-1}a\). If the characteristic of \(F\) is not two, then \(a^\vee = 2a/\beta(a,a)\) and this coincides with the usual notion of coroot, as found in [Humphreys, 1990], for example. In particular, if \(\beta(u,v)\) is the standard inner product \((u,v) = uv^\tr\), then the inner product and the pairing between \(V\) and its dual are essentially the same and the concepts of coroot and coroot coincide.
- Example: Unitary Transvection#
We create an hermitian space by attaching an hermitian form \(J\) to a vector space \(V\) over a field with complex conjugation. The vector \(a = (1,0,0,0)\) is isotropic with respect to this form and therefore we can use it to create a unitary transvection.
Continuing the previous example we note that \(b = (1,1,1,1)\) is non-isotropic and we create a unitary reflection of order 4 with \(b\) as root.
> K<i> := CyclotomicField( 4 ); > sigma := hom< K -> K | x :-> ComplexConjugate(x) >; > J := Matrix(4,4,[K|0,0,0,1, 0,0,1,0, 0,1,0,0, 1,0,0,0]); > V := UnitarySpace(J,sigma); > a := V![1,0,0,0]; > t := UnitaryTransvection(a,i); > t; [ 1 0 0 0] [ 0 1 0 0] [ 0 0 1 0] [-i 0 0 1] > b := V![1,1,1,1]; > InnerProduct(b,b); 4 %%a> assert $1 eq 4; > r := UnitaryReflection(b,i); > r, Eigenvalues(r); [1/4*(i + 3) 1/4*(i - 1) 1/4*(i - 1) 1/4*(i - 1)] [1/4*(i - 1) 1/4*(i + 3) 1/4*(i - 1) 1/4*(i - 1)] [1/4*(i - 1) 1/4*(i - 1) 1/4*(i + 3) 1/4*(i - 1)] [1/4*(i - 1) 1/4*(i - 1) 1/4*(i - 1) 1/4*(i + 3)] { <i, 1>, <1, 3> }