Finite and Affine Coxeter Groups

Functions related to the classification of finite and affine Coxeter groups are described in this section. This classification is due to Cartan [Car52] and Coxeter [Cox34].

An affine reflection group is a group generated by reflections in affine space (in other words, real reflections in a hyperplane that does not necessarily pass through the origin). A Coxeter group is called affine if it is infinite and it has a representation as a discrete, properly acting, affine reflection group (see [Bou68] for more details on discreteness and proper action). Note that a Coxeter group is finite if, and only if, it has a representation as a discrete, properly acting group of reflections of the sphere; hence finite Coxeter groups are sometimes called spherical.

A Coxeter group is finite if, and only if, all its irreducible components are finite; a Coxeter group is affine if, and only if, all its irreducible components are finite or affine, and at least one component is affine. So it suffices to classify irreducible Coxeter groups.

The Dynkin diagrams of the irreducible finite crystallographic Coxeter groups are:

  An  1---2---3- ... -n        Bn  1---2- ... -(n-1)=>=n

                                                     (n-1)
                                                    /
  Cn  1---2- ... -(n-1)=<=n    Dn  1---1- ... -(n-2)
                                                    \\
                                                     n

  E6  1---3---4---5---6        E7  1---3---4---5---6---7
              |                          |
              2                          2

  E8  1---3---4---5---6---7---8
              |
              2

  F4  1---2=>=3---4            G2  1=<=2
                                     3

Due to the difficulty of drawing a triple bond with text characters, the edge for \(G_2\) is labelled.

The only irreducible noncrystallographic finite Coxeter groups are \(H_3\), \(H_4\) and \(I_2(m)\) for \(m = 5\) and \(m > 6\). The Coxeter graphs of these groups are:

  H3  1---2---3                H4  1---2---3---4
        5                            5

  I2(m) 1---2
          m

Note that there is some redundancy in this classification; specifically \(A_1=B_1=C_1=D_1\), \(A_2=I_2(3)\), \(B_2=C_2=I_2(4)\), \(D_2=A_1+A_1\), \(D_3=A_3\), \(G_2=I_2(6)\). Furthermore, for \(n\ge3\), types \(B_n\) and \(C_n\) have identical Coxeter matrices but inequivalent crystallographic Cartan matrices for \(n>2\).

All irreducible affine groups are crystallographic. There is one corresponding to each irreducible crystallographic finite group. Their Dynkin diagrams are:

  A~1      1-------2           A~n     1---2- ... -n
             infty                     |           |
                                       ----(n+1)----

          1
           \\
  B~n       2- ... -(n-1)=>=n
           /
      (n+1)

  C~n     (n+1)=>=1---1- ... -(n-1)=<=n

          1           (n-1)
           \         /
  D~n       2- ... -(n-2)
           /         \\
      (n+1)           n

  E~6    1---3---4---5---6     E~7    8---1---3---4---5---6---7
                 |                                |
                 2                                2
                 |
                 7

  E~8    1---3---4---5---6---7---8---9
                 |
                 2

  F~4    5---1---2=>=3---4     G~2    1=<=2---3
                                        3

The labels on the vertices of these diagrams show the standard vertex order used in Magma, which is consistent with the order used in [Bou68].

IsCoxeterFinite(M): AlgMatElt -> BoolElt
IsCoxeterFinite(G): GrphUnd -> BoolElt
IsCoxeterFinite(C): AlgMatElt -> BoolElt
IsCoxeterFinite(D): GrphDir -> BoolElt
IsCoxeterFinite(N): MonStgElt -> BoolElt

Returns true if, and only if, the corresponding Coxeter group is finite. The input variable can be a Coxeter matrix \(M\), Coxeter graph \(G\), Cartan matrix \(C\), Dynkin digraph \(D\), or Cartan name given by the string \(N\).

IsCoxeterAffine(M): AlgMatElt -> BoolElt
IsCoxeterAffine(G): GrphUnd -> BoolElt
IsCoxeterAffine(C): AlgMatElt -> BoolElt
IsCoxeterAffine(D): GrphDir -> BoolElt
IsCoxeterAffine(N): MonStgElt -> BoolElt

Returns true if, and only if, the corresponding Coxeter group is affine. The input variable can be a Coxeter matrix \(M\), Coxeter graph \(G\), Cartan matrix \(C\), Dynkin digraph \(D\), or Cartan name given by the string \(N\).

Example: Testing Finite and Affine Types (ex-ebe4bc)
> IsCoxeterAffine("A~2");
true
> IsCoxeterAffine("A~2B2");
true
> IsCoxeterAffine("A2B2");
false
> IsCoxeterFinite("A2B2");
true

Run in calculator (opens in a new tab)

CoxeterMatrix(N): MonStgElt -> AlgMatElt

The Coxeter matrix with Cartan name given by the string \(N\).

CoxeterGraph(N): MonStgElt -> GrpUnd

The Coxeter graph with Cartan name given by the string \(N\).

CartanMatrix(N): MonStgElt -> AlgMatElt
Symmetric: BoolElt                      Default: false
BaseField: MonStgElt                    Default: "NumberField"

The Cartan matrix with Cartan name given by the string \(N\). By default, the crystallographic matrix is returned for crystallographic types; otherwise the Cartan matrix with \(c_{ij}=-4\cos^2(\pi/m_{ij})\), \(c_{ji}=-1\) when \(m_{ij}\ne2\) and \(i<j\) is returned.

If the Symmetric flag is set true, the symmetric Cartan matrix with \(c_{ij}=c_{ji}=-2\cos(\pi/m_{ij})\) is returned.

The BaseField flag determines the field over which the Cartan matrix is defined. If the matrix is crystallographic however, it is defined over the integers regardless of the value of this flag. The possible values are:

  1. "NumberField": An algebraic number field. This is the default. See Chapter Number Fields.

  2. "Cyclotomic" or "SparseCyclotomic": A cyclotomic field with the sparse representation for elements. See Chapter Cyclotomic Fields.

  3. "DenseCyclotomic": A cyclotomic field with the dense representation for elements. See Chapter Cyclotomic Fields.

DynkinDigraph(N): MonStgElt -> GrphDir

The Dynkin digraph with Cartan name given by the string \(N\). The Cartan name must be crystallographic, i.e. it cannot involve types \(H_3\), \(H_4\), and \(I_2(m)\).

Example: Matrices and Graphs from Cartan Names (ex-f6d3c0)

Run in calculator (opens in a new tab)

> CoxeterMatrix("I2(7)");
[1 7]
[7 1]
> CoxeterGraph("A3");
Graph
Vertex  Neighbours

1       2 ;
2       1 3 ;
3       2 ;

> CartanMatrix("H3" : Symmetric);
[   2 -$.1    0]
[-$.1    2   -1]
[   0   -1    2]
> DynkinDigraph("A~2");
Digraph
Vertex  Neighbours

1       2 3 ;
2       1 3 ;
3       1 2 ;

The code for interpreting a string as a Cartan name is quite flexible: letters and numbers must alternate, except in type \(I\) where brackets must be used.

> M := CoxeterMatrix("A_5B3 c2I2 (5)");
> CartanName(M);
A5 B3 B2 I2(5)

Run in calculator (opens in a new tab)

IrreducibleCoxeterMatrix(X, n): MonStgElt, RngIntElt -> AlgMatElt

The irreducible Coxeter matrix with Cartan name \(X_n\) (or \(I_2(n)\) if \(X=\)"I").

IrreducibleCoxeterGraph(X, n): MonStgElt, RngIntElt -> GrpUnd

The irreducible Coxeter graph with Cartan name \(X_n\) (or \(I_2(n)\) if \(X=\)"I").

IrreducibleCartanMatrix(X, n): MonStgElt, RngIntElt -> AlgMatElt
Symmetric: BoolElt                      Default: false
BaseField: MonStgElt                    Default: "NumberField"

The irreducible Cartan matrix with Cartan name \(X_n\) (or \(I_2(n)\) if \(X=\)"I").

If the Symmetric flag is set true, the symmetric Cartan matrix with \(c_{ij}=c_{ji}=-2\cos(\pi/m_{ij})\) is returned.

The BaseField flag determines which field the Cartan matrix is defined over. If the matrix is crystallographic however, it is defined over the integers regardless of the value of this flag. The possible values are:

  1. "NumberField": An algebraic number field. This is the default. See Chapter Number Fields.

  2. "Cyclotomic" or "SparseCyclotomic": A cyclotomic field with the sparse representation for elements. See Chapter Cyclotomic Fields.

  3. "DenseCyclotomic": A cyclotomic field with the dense representation for elements. See Chapter Cyclotomic Fields.

IrreducibleDynkinDigraph(X, n): MonStgElt, RngIntElt -> GrphDir

The irreducible Dynkin digraph with Cartan name \(X_n\). The Cartan name must be crystallographic, i.e. it cannot involve types \(H_3\), \(H_4\), or \(I_2(m)\).

Example: Irreducible Coxeter Graphs (ex-fc81db)

These functions are useful in loops.

> for n in [1..5] do
>     IsTree(IrreducibleCoxeterGraph("A~", n));
> end for;
true
false
false
false
false
> C := &join[ IrreducibleCoxeterGraph(t, 4) : t in ["A","B","C","D","F"] ];

Run in calculator (opens in a new tab)

IsCoxeterIsomorphic(N1, N2): MonStgElt, MonStgElt -> BoolElt

Returns true if and only if the Cartan names given by the strings \(N_1\) and \(N_2\) correspond to isomorphic Coxeter systems.

IsCartanEquivalent(N1, N2): MonStgElt, MonStgElt -> BoolElt

Returns true if and only if the Cartan names given by the strings \(N_1\) and \(N_2\) correspond to Cartan equivalent Cartan matrices. The Cartan names must be crystallographic; i.e., they cannot involve types \(H_3\), \(H_4\), and \(I_2(m)\).

Example: Isomorphism and Equivalence (ex-d3e86e)
> IsCoxeterIsomorphic("A1A1", "D2");
true
> IsCoxeterIsomorphic("B5", "C5");
true
> IsCartanEquivalent("B5", "C5");
false

Run in calculator (opens in a new tab)

IsSimplyLaced(N): MonStgElt -> BoolElt

Returns true if, and only if, the Coxeter matrix with Cartan name given by the string \(N\) is simply laced, i.e. all its entries are 1, 2, or 3.

CoxeterGroupOrder(N): MonStgElt -> .
CoxeterGroupFactoredOrder(N): MonStgElt -> .

The (factored) order of the Coxeter group with Cartan name given by the string \(N\).

NumberOfPositiveRoots(N): MonStgElt -> .
NumPosRoots(N): MonStgElt -> .

The number of positive roots of the Coxeter group with Cartan name given by the string \(N\). See Subsection Simple and Positive Roots for the definition of positive roots.

FundamentalGroup(N): MonStgElt -> GrpAb

The fundamental group of the crystallographic Cartan matrix with Cartan name given by the string \(N\), i.e. \({\mathbb{Z}}^n/\Gamma\) where \(\Gamma\) is the lattice generated by the rows of the Cartan matrix. The natural mapping \({\mathbb{Z}}^n\to{\mathbb{Z}}^n/\Gamma\) is the second returned value.

Example: Coxeter Group Orders (ex-d07ed7)
> CoxeterGroupOrder("F4");
1152
> CoxeterGroupFactoredOrder("F4");
[ <2, 7>, <3, 2> ]
> NumPosRoots("F4");
24
> #FundamentalGroup("F4");
1

Run in calculator (opens in a new tab)

CartanName(M): AlgMatElt -> MonStgElt
CartanName(G): GrphUnd -> MonStgElt
CartanName(C): AlgMatElt -> MonStgElt
CartanName(D): GrphDir -> MonStgElt

The Cartan name of a Coxeter matrix \(M\), Coxeter graph \(G\), Cartan matrix \(C\), or Dynkin digraph \(D\). If the corresponding Coxeter group is neither finite nor affine, an error is flagged.

Example: Cartan Name of a Coxeter Matrix (ex-8583c3)
> CartanName(SymmetricMatrix([1, 3,1, 2,3,1]));
A3
> CartanName(SymmetricMatrix([1, 3,1, 3,3,1]));
A~2
> CartanName(SymmetricMatrix([1, 3,1, 4,3,1]));
The component at rows and columns [ 1, 2, 3 ]
is not a finite or affine Coxeter matrix
> C := Matrix(4,4, [2,-2,0,0, -1,2,0,0, 0,0,2,-2, 0,0,-1,2] );
> C;
[ 2 -2  0  0]
[-1  2  0  0]
[ 0  0  2 -2]
[ 0  0 -1  2]

Run in calculator (opens in a new tab)

DynkinDiagram(M): AlgMatElt
DynkinDiagram(G): GrphUnd
DynkinDiagram(C): AlgMatElt
DynkinDiagram(D): GrphDir
DynkinDiagram(N): MonStgElt

Print the Dynkin diagram of a Coxeter matrix \(M\), Coxeter graph \(G\), Cartan matrix \(C\), Dynkin digraph \(D\), or Cartan name given by the string \(N\). If the corresponding group is neither affine nor crystallographic, an error is flagged.

Example: Dynkin Diagram of a Reducible Type (ex-08ba7b)
> DynkinDiagram("A~5 D4 BC3");

A~5    1 - 2 - 3 - 4 - 5
       |               |
       ------- 6 -------

D4    9
     /
7 - 8
     \\
      10

BC3    11 - 12 =>= 13

Run in calculator (opens in a new tab)

CoxeterDiagram(M): AlgMatElt
CoxeterDiagram(G): GrphUnd
CoxeterDiagram(C): AlgMatElt
CoxeterDiagram(D): GrphDir
CoxeterDiagram(N): MonStgElt

Print the Coxeter diagram of a Coxeter matrix \(M\), Coxeter graph \(G\), Cartan matrix \(C\), Dynkin digraph \(D\), or Cartan name given by the string \(N\). If the corresponding group is not affine or is not crystallographic, an error is flagged.

Example: Coxeter Diagram of a Reducible Type (ex-f3140d)
> CoxeterDiagram("A~5 D4 BC3");

A~5    1 - 2 - 3 - 4 - 5
       |               |
       ------- 6 -------

D4    9
     /
7 - 8
     \\
      10

BC3    11 - 12 === 13

Run in calculator (opens in a new tab)