|
Let V be a vector space of dimension n over a field F. As defined in
Bourbaki [Bou68], 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∈V there exists φ(v) ∈F
such that v - vr = φ(v)a. Then φ∈V * and kerφ = H.
This means that every pseudo-reflection has the form
vr = v - φ(v)a
and its determinant is 1 - φ(a). The linear functional φ is a
coroot of r.
 - If φ(a) = 1, then r is not invertible; it is the projection
of V onto H along a.
 - If φ(a) = 0 (equivalently, a∈H), then r is by definition a transvection.
 - If φ(a) ≠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 magma both V and its dual space V * are identified with the space Fn of row
vectors of length n and the standard bilinear pairing between V and V * is
(a, b) |-> abtr, where btr denotes the column vector which is the
transpose of b.
The row vector b which represents the coroot φ is also called a
coroot of the pseudo-reflection; it is uniquely determined by r and a.
The matrix of r is
I - btr a
and, in particular, ar = (1 - abtr)a. Thus r is a reflection of finite order d
if and only if abtr ≠0, 1 and 1 - abtr is a d-th root of unity.
The matrix of the pseudo-reflection with root a and coroot b.
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.
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.
Returns true if r is the matrix of a pseudo-reflection, in which
case a root and a coroot are returned as well.
Returns true if r is the matrix of a transvection, in which
case a root and a coroot are returned as well.
Returns true if r is the matrix of a reflection, in which
case a root and a coroot are returned as well.
Strict: BoolElt Default: 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).
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
An example of a group which can be generated by reflections even
though not every given generator is a reflection.
> 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
> G := MatrixGroup<2,F | r,s >;
> IsReflectionGroup(G);
false
> IsReflectionGroup(G : Strict := false);
true
> #G;
24
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.)
> exists(t){ t : t in G | IsReflection(t) and G eq sub<G|r,t> };
true
> t;
[ 0 omega + 1]
[ 1 -omega]
The groups SL(n, q) are generated by transvections. To illustrate
this we find representatives for the conjugacy classes of GL(3, 25)
which are transvections and then check that the normal closure is
SL(3, 25).
> G := GL(3,25);
> ccl := Classes(G);
> T := [ c : c in ccl | IsTransvection(c[3]) ];
> #T;
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
Let J be the matrix of a non-degenerate reflexive bilinear or sesquilinear
form β on the vector space V over a field F. Then β is
either a symmetric, alternating or hermitian form.
We may assume that F is equipped with an automorphism σ such that
σ2 = 1. If β is a symmetric or alternating form, σ
is the identity; if β is hermitian, the order of
σ :α |-> barα is two and J = bar Jtr. If
a is the row vector (α1, α2, ..., αn), define
σ(a) = (σ(α1), σ(α2), ..., σ(αn)).
If a is a root of a pseudo-reflection r and if r preserves β,
then the coroot of r is α σ(a) Jtr for some α∈F.
Thus the matrix of r is I - α Jtrσ(a)tr a.
The symplectic transvection with root a and multiplier α with respect to
the form attached to the parent of a. If the form is not alternating a runtime
error is generated.
If β 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 α aJtr and the matrix of
r is I - α J atr a, for some α≠0 in F.
The unitary transvection with root a and multiplier α with respect to the
hermitian form attached to the parent of a.
The matrix of the unitary transvection is I - α J bar atr a, where a is
isotropic and the trace of α is 0; that is, a J bar atr = 0 and
α + barα = 0.
A runtime error is generated if the form is not hermitian, if a is not isotropic, or
if the trace of α is not 0.
The unitary reflection with root a and determinant ζ, where ζ is
a root of unity. The reflection preserves the hermitian form attached to the
ambient space of a and sends a to ζ a.
In the case of a unitary reflection r with matrix I - α Jtrσ(a)tr a, the
root a must be non-isotropic and ar = ζ a, where ζ is a root
of unity. Therefore, α = (1 - ζ)/aJ bar atr.
The vector av = barα a is the coroot of a and the definition
of r becomes
v r = v - β(v, av)a.
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 CLIFFORD ALGEBRAS for more details).
The polar form of Q is the symmetric bilinear form β(u, v) = Q(u + v) - Q(u) - Q(v).
Thus β(v, v) = 2Q(v) and therefore, if the characteristic of F is not two, Q is
uniquely determined by β.
If a is non-singular (that is, Q(a) ≠0), the formula
vr = v - Q(a) - 1β(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 av = Q(a) - 1a. If the characteristic of F is not two,
then av = 2a/β(a, a) and this coincides with the usual notion of coroot,
as found in [Hum90], for example. In particular, if β(u, v) is the
standard inner product (u, v) = uvtr, then the inner product and the pairing between
V and its dual are essentially the same and the concepts of coroot and coroot
coincide.
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.
> 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]
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.
> b := V![1,1,1,1];
> InnerProduct(b,b);
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>
}
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|