Construction of Finite Complex Reflection Groups

In this section, we describe the classification and construction of finite complex reflection groups.

A finite complex reflection group has a finite root system but there is no known analogue of a set of simple roots as in the theory of finite Coxeter groups. To illustrate the difficulty, one of the examples in this section constructs a complex reflection group of rank 4 which cannot be generated by fewer than 5 generators.

Nevertheless, it is possible to generalise the concept of root datum to the complex case and construct all complex reflection groups via their root data.

Let D be the ring of integers of a number field F which admits a well-defined operation of complex conjugation (which in the case of a real number field will be the identity automorphism). Let μ(D) be the group of roots of unity in D and let V = F tensor D L.

A complex root datum is a 4-tuple (L, L * , Φ, ρ), where

L and L * are free D-modules of rank n which are in duality via a pairing hfil
L x L * to D : (a, φ) |-> < a, φ >;

Φ is a finite subset of L and ρ : Φ to L * .

For all a∈Φ we have:

1.
for all λ∈F, we have λ a ∈Φ if and only if λ∈μ(D);

2.
for all λ ∈D, we have ρ(λ a) = /line(λ)ρ(a);

3.
f(a) = 1 - < a, ρ(a) >∈μ(D) - {1};

4.
the reflection ra of V defined by v ra = v - < v, ρ(a) > a and the reflection r * a of V * defined by φ r * a = φ - < a, φ > ρ(a) satisfy:

Φ ra ⊆Φ and Φ * r * a⊆Φ * , where Φ * = ρ(Φ).
f(a rb ) = f(a) for all a, b∈Φ.

Put a * = ρ(a) and V * = F tensor D L * . Then ρ : Φ to Φ * is a bijection and the map

p := V to V * : v |-> ∑a∈Φ/line(< v, a * >) a *

is semilinear. Furthermore, β(u, v) = < u, p(v) > defines a non-degenerate hermitian form on the span of Φ.

The group W generated by the reflections {ra | a∈Φ} is the Weyl group of the root datum. For any set {r1, r2, ..., rk} of reflections that generate W, every reflection in W is conjugate to a power of some ri. The set Φ is a root system for W and Φ * is the set of coroots.

If a1, a2, ..., ak∈Φ are roots of the reflections r1, r2, ..., rn which generate W, then C = (< ai, a * j >) is a complex Cartan matrix and the ai and a * j are basic roots and coroots of W.

Even though there is no satisfactory notion of `simple roots', a complex reflection group can nevertheless be described by means of a complex Cartan matrix. In Magma if the roots are the rows of a matrix A and if the coroots are the rows of a matrix B, then C = ABtr. The matrices A and B are called basic root and coroot matrices.

The complex Cartan matrix can be described by a diagram similar to the Dynkin diagram of a Coxeter group. This notation was suggested by Coxeter and used by Cohen in [Coh76]. (There is a different type of diagram used by Broué, Malle and others.)

Cohen's naming scheme for the diagrams extends the standard notation An, Bn, ..., H3, H4 used for Coxeter groups. Magma uses a slight variation of Cohen's scheme; that is, in Magma, Cohen's group EN4 is referred to as O4.

The original numbering system for the primitive complex reflection groups is due to Shephard and Todd [ST54].

ShephardTodd(n) : RngIntElt -> GrpMat, Fld
    NumFld: BoolElt                     Default: false
This function returns the primitive reflection group Gn using the Shephard and Todd numbering.

By default the matrices are written over the ring of integers of the smallest cyclotomic field which contains the character values of the reflections. If the parameter NumFld is set to true, the number field generated by the character values of the reflections is used.

The groups available via this function include all finite primitive complex reflection groups other than the symmetric groups Sym(n) for n≥5. The groups are listed below.

Nineteen 2-dimensional primitive complex reflection groups:

Tetrahedral family: G4, ..., G7 Octahedral family: G8, ..., G15

Icosahedral family: G16, ..., G22

Five 3-dimensional complex reflection groups:

G23: W(H3) = Z2 x PSL(2, 5), order 120. G24: W(J3(4)) = Z2 x PSL(2, 7), order 336. G25: W(L3) = 31 + 2.SL(2, 3), order 648; Hessian group. G26: W(M3) = Z2 x 31 + 2.SL(2, 3), order 1296; Hessian group.

G27: W(J3(5)) = Z2 x (Z3.Alt(6)), order 2160, where Z3.Alt(6) denotes the non-split extension of Z3 by Alt(6).

Five 4-dimensional complex reflection groups in addition to Sym(5):

G28: W(F4) = (SL(2, 3) SL(2, 3)).(Z2 x Z2), order 1152. G29: W(N4) = (Z4 21 + 4).Sym(5), order 7680 (splits). G30: W(H4) = (SL(2, 5) SL(2, 5)).Z2, order 14ts400.

G31: W(O4) = (Z4 21 + 4).Sp(4, 2), order 46ts080 (non-split) 5 generators.

G32: W(L4) = Z3 x Sp(4, 3), order 155ts520 = 27 x 35 x 5.

One 5-dimensional complex reflection group in addition to Sym(6):

G33: W(K5) = Z2 x Ω(5, 3) = Z2 x PSp(4, 3) = Z2 x PSU(4, 2), order 51ts840 = 27 x 34 x 5.

Two 6-dimensional complex reflection groups in addition to Sym(7):

G34: W(K6) = Z3.widehatΩ^ - (6, 3), order 39ts191ts040 = 29 x 37 x 5 x 7 (non-split), where widehatΩ^ - (6, 3) is a semidirect product of Ω^ - (6, 3) by Z2.

G35: W(E6) = SO(5, 3) = O^ - (6, 2) = PSp(4, 3).Z2 = PSU(4, 2).Z2, order 51ts840 = 27 x 34 x 5.

One 7-dimensional complex reflection group in addition to Sym(8):

G36: W(E7) = Z2 x Sp(6, 2), order 2ts903ts040 = 210 x 34 x 5 x 7.

One 8-dimensional complex reflection group in addition to Sym(9):

G37: W(E8) = Z2.O^ + (8, 2), order 696ts729ts600 = 214 x 35 x 52 x 7 (non-split).

Example GrpRfl_ComplexReflectionGroups (H106E9)

We verify that the complex reflection group G24 is isomorphic to Z2 x Ω(3, 7).
> W := ShephardTodd(24);
> G := sub<GL(3,7) | Omega(3,7), -GL(3,7)!1>;
> IsIsomorphic(W,G):Minimal;
true Homomorphism of MatrixGroup(3, Cyclotomic Field of order 7 and degree 6)
of order 2^4 * 3 * 7 into MatrixGroup(3, GF(7)) of order 2^4 * 3 * 7
ComplexReflectionGroup(C) : Mtrx -> GrpMat, Map
    Reduced: BoolElt                    Default: true
This function returns the complex reflection group defined by the (complex) Cartan matrix C. When the optional parameter Reduced is true (the default), the roots and coroots are computed modulo the null space of C.
ComplexReflectionGroup(X, n) : MonStgElt, RngIntElt -> GrpMat, Map
    NumFld: BoolElt                     Default: false
This function returns the primitive reflection group of type X and rank n, using the Cohen/Coxeter naming scheme.

By default the matrices are written over the ring of integers of the smallest cyclotomic field which contains the character values of the reflections. If the parameter NumFld is set to true, the number field generated by the character values of the reflections is used.

Example GrpRfl_reflection-subgroups (H106E10)

In this example we find (up to conjugacy) all subgroups of G = W(O4) = G31 that are generated by reflections. This shows that G cannot be generated by fewer than 5 reflections.

We begin by checking that G has only one class of reflections.

> G := ComplexReflectionGroup("O",4);
> print #[c[3] : c in Classes(G) | IsReflection(c[3])];
1
> R := Class(G,G.1); #R;
60
> #G;
46080

We proceed by building the list of reflection subgroups in `layers', where the n-th layer consists of representatives of the subgroups generated by n reflections.

> L := [sub<G|G.1>];
> layers := [L];
> n := 0;
> while true do
>   n +:= 1;
>   nextlayer := [];

We extend each group in layer n by adjoining one additional reflection. The resulting subgroup will be generated by n or n + 1 reflections. If we haven't seen it before we add it to the list.

>   for H in layers[n] do
>     for A in {sub<G|H,s> : s in R | s notin H} do
>       if forall{B : B in L | not IsConjugate(G,A,B)} then
>         Append(~nextlayer,A);
>         Append(~L,A);
>       end if;
>     end for;
>   end for;
>   if IsEmpty(nextlayer) then break; end if;
>   Append(~layers,nextlayer);

After the construction of each layer we print the orders of the subgroups.

>   print n+1,"generators";
>   print [#A : A in nextlayer];
> end while;
2 generators
[ 4, 4, 8, 6 ]
3 generators
[ 8, 8, 16, 24, 12, 16, 24, 48, 16, 96 ]
4 generators
[ 192, 16, 32, 96, 16, 192, 32, 48, 1536, 384, 64, 64, 32,
 7680, 1152, 36, 384, 120, 120, 192, 192 ]
5 generators
[ 64, 384, 3072, 128, 46080 ]
6 generators
[ 256 ]

Looking at the orders we see that the first time the group G31 appears is in layer 5. That is, it cannot be generated by 4 or fewer reflections. It is interesting to note that there is one subgroup which requires 6 generators; namely the imprimitive group G(4, 2, 2) x G(4, 2, 2).

ShephardTodd(m, p, n) : RngIntElt, RngIntElt, RngIntElt -> GrpMat, Fld
ImprimitiveReflectionGroup(m, p, n) : RngIntElt, RngIntElt, RngIntElt -> GrpMat, Fld
    NumFld: BoolElt                     Default: false
Let B be the direct product of n copies of the cyclic group Cm of order m and represent the elements of B by diagonal matrices diag(θ1, θ2, ..., θn). The elements of the symmetric group Sym(n) can be represented by n x n permutation matrices and in this guise it acts on the group B; the resulting semidirect product is also known as the wreath product Cm wreath Sym(n).

For each divisor p of m define

A(m, p, n) := { diag(θ1, θ2, ..., θn)∈B | (θ1θ2 ... θn)m/p = 1 }.

It is immediately clear that A(m, p, n) is a subgroup of index p in B that is invariant under the action of Sym(n). The semidirect product of A(m, p, n) by the symmetric group Sym(n) is the group G(m, p, n). These groups are imprimitive when m ≥2. The group G(1, 1, n) is the symmetric group Sym(n) acting as permutation matrices.

Shephard and Todd proved that every irreducible imprimitive complex reflection subgroup of GL(n, C) is conjugate to G(m, p, n) for some m and p.

This function returns the Shephard and Todd group G(m, p, n) ⊂GL(n, F), where p divides m. In general, G(m, p, n) is irreducible but if m = p = 1, the function returns Sym(n) in its natural permutation representation, which is not irreducible.

By default the matrices are written over the ring of integers of the smallest cyclotomic field which contains the character values of the reflections. If the parameter NumFld is set to true, the number field generated by the character values of the reflections is used.

Example GrpRfl_ImprimitiveReflectionGroup (H106E11)

> ShephardTodd(6, 3, 3);
MatrixGroup(3, Cyclotomic Field of order 6 and degree 2)
Generators:
     [0 1 0]
     [1 0 0]
     [0 0 1]
     [1 0 0]
     [0 0 1]
     [0 1 0]
     [1      0      0]
     [0      0      z]
     [0 -z + 1      0]
     [1  0   0]
     [0  1   0]
     [0  0  -1]
Mapping from: MatrixGroup(3, Cyclotomic Field of order 6 and degree 2) to GL(3,
CyclotomicField(6))
ComplexRootMatrices(k) : RngIntElt -> AlgMatElt, AlgMatElt, AlgMatElt, RngElt, RngIntElt
ComplexRootMatrices(m, p, n) : RngIntElt, RngIntElt, RngIntElt -> AlgMatElt, AlgMatElt, AlgMatElt, RngElt, RngIntElt
    NumFld: BoolElt                     Default: false
If G is the complex reflection group ShephardTodd(k) or ShephardTodd(m,p,n), respectively, these functions return five values: the basic root and coroot matrices for G, an invariant hermitian form, a generator for the group of roots of unity of the ring of definition, and the order of the generator.

By default the root matrices are written over the ring of integers of the smallest cyclotomic field which contains the character values of the reflections. If the parameter NumFld is set to true, the number field generated by the character values of the reflections is used.

Example GrpRfl_ComplexReflectionGroupByMatrix (H106E12)

> A,B,J,gen,ordgen := ComplexRootMatrices(13);
> A,B;
[            1               0]
[ -z^2 - z - 1               1]
[z^2 + 2*z + 1    -z^2 - z - 1]
[             2     -z^3 + z + 2]
[           z^2    z^3 + z^2 + 1]
[-z^3 + z^2 - 1          z^2 - 1]
> gen,ordgen;
-z^3
8
> G := PseudoReflectionGroup(A,B);
> #G;
96
ComplexCartanMatrix(k) : RngIntElt -> AlgMatElt
ComplexCartanMatrix(m, p, n) : RngIntElt, RngIntElt, RngIntElt -> AlgMatElt
    NumFld: BoolElt                     Default: false
If A and B are the basic root and coroot matrices returned by ComplexRootMatrices above, then this function returns ABtr, where Btr is the transpose of B. The meaning of the optional parameter NumFld has been described above.
BasicRootMatrices(C) : Mtrx -> AlgMatElt, AlgMatElt
    Reduced: BoolElt                    Default: true
This function returns a matrix A of roots and a matrix B of coroots such that C = ABtr. The default, when the optional parameter Reduced is true, is to compute the roots and coroots modulo the null space of C.
CohenCoxeterName(k) : RngIntElt -> MonStgElt, RngIntElt
Cohen's string name and rank of the Shephard and Todd group Gk. This is an extension of the naming scheme for Coxeter groups. For example, the Shephard and Todd group G37 is the Coxeter group of type E8 whereas the Shephard and Todd group G32 has Cohen name L4.
ShephardToddNumber(X, n) : MonStgElt, RngIntElt -> RngIntElt
Given a string X and an integer n, this function returns the Shephard and Todd number of the complex reflection group W(Xn) of type X and rank n. The rank is the dimension of the space on which the group acts; it is not always the number of generators.

The Shepard and Todd numbers range from 1 to 37. All symmetric groups (type A) have Shephard and Todd number 1, all imprimitive groups G(m, p, n) have Shephard and Todd number 2, and all cyclic groups have Shephard and Todd number 3. The primitive complex reflection groups of rank 2 have Shepard and Todd numbers in the range 4 to 22. Except for the group G4 which has type L2, the rank 2 groups do not have Cohen--Coxeter names.

The Shephard and Todd numbers in the range 23 to 37 refer to the Cohen--Coxeter groups W(E6), W(E7), W(E8), W(F4), W(H3), W(H4), W(J3(4)), W(J3(5)), W(K5), W(K6), W(L3), W(L4), W(M3), W(N4), and EW(N4). Note that in Magma the types of the rank 3 groups W(J3(4)) and W(J3(5)) are J4 and J5; and the type of the rank 4 group EW(N4) is O.

As a matrix group the Coxeter group of type A is returned by the function CoxeterGroup(GrpMat,"A",n), where n is the rank. The groups of types B, C and D are Coxeter groups and imprimitive complex reflection groups. Thus, as matrix groups, they can be obtained via the function ShephardTodd(2,p,n), where p = 1 for type B or C and p=2 for type D.

Example GrpRfl_NameConversion (H106E13)

The type of the group G31 is O and its rank is 4. This is the notation used in [LT09].
> ShephardToddNumber("J5",3);
27
> CohenCoxeterName(31);
O 4

Example GrpRfl_ReflectionGroupNames (H106E14)

To construct a complex reflection group with a given name, first convert the name to its Shephard and Todd number.
> G := ShephardTodd(ShephardToddNumber("L",4));
> G;
MatrixGroup(4, Cyclotomic Field of order 3 and degree 2)
Generators:
    [     omega          0          0          0]
    [-omega - 1          1          0          0]
    [         0          0          1          0]
    [         0          0          0          1]
    [        1 omega + 1         0         0]
    [        0     omega         0         0]
    [        0 omega + 1         1         0]
    [        0         0         0         1]
    [         1          0          0          0]
    [         0          1 -omega - 1          0]
    [         0          0      omega          0]
    [         0          0 -omega - 1          1]
    [        1         0         0         0]
    [        0         1         0         0]
    [        0         0         1 omega + 1]
    [        0         0         0     omega]
ComplexRootDatum(k) : RngIntElt -> SeqEnum, SeqEnum, Map, GrpMat, AlgMatElt
ComplexRootDatum(m, p, n) : RngIntElt, RngIntElt, RngIntElt -> SeqEnum, SeqEnum, Map, GrpMat, AlgMatElt
    NumFld: BoolElt                     Default: false
A root datum for the Shephard and Todd group Gk or, in the second form of the function, the imprimitive group G(m, p, n). This is returned as a 5-tuple Φ, Φ * , ρ, W, J, where Φ is the sequence of roots, Φ * the sequence of coroots, ρ : A to B is a bijective map, W is the complex reflection group of the root datum, and J is an hermitian form preserved by W.
V2.28, 13 July 2023