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 G2 is labelled.

The only irreducible noncrystallographic finite Coxeter groups are H3, H4 and I2(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
filbreak
  I2(m) 1---2
          m
Note that there is some redundancy in this classification; specifically A1=B1=C1=D1, A2=I2(3), B2=C2=I2(4), D2=A1 + A1, D3=A3, G2=I2(6). Furthermore, for n ge3, types Bn and Cn 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 Cartan_Testing (H102E11)

> IsCoxeterAffine("A~2");
true
> IsCoxeterAffine("A~2B2");
true
> IsCoxeterAffine("A2B2");
false
> IsCoxeterFinite("A2B2");
true
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 cij= - 4cos2(π/mij), cji= - 1 when mijne2 and i<j is returned.

If the Symmetric flag is set true, the symmetric Cartan matrix with cij=cji= - 2cos(π/mij) 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 H3, H4 and I2(m).

Example Cartan_MatricesAndGraphs (H102E12)

> 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)
IrreducibleCoxeterMatrix(X, n) : MonStgElt, RngIntElt -> AlgMatElt
The irreducible Coxeter matrix with Cartan name Xn (or I2(n) if X="I").
IrreducibleCoxeterGraph(X, n) : MonStgElt, RngIntElt -> GrpUnd
The irreducible Coxeter graph with Cartan name Xn (or I2(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 Xn (or I2(n) if X="I").

If the Symmetric flag is set true, the symmetric Cartan matrix with cij=cji= - 2cos(π/mij) 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 Xn. The Cartan name must be crystallographic, i.e. it cannot involve types H3, H4 or I2(m).

Example Cartan_IrreducibleCoxeter (H102E13)

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"] ];
IsCoxeterIsomorphic(N1, N2) : MonStgElt, MonStgElt -> BoolElt
Returns true if and only if the Cartan names given by the strings N1 and N2 correspond to isomorphic Coxeter systems.
IsCartanEquivalent(N1, N2) : MonStgElt, MonStgElt -> BoolElt
Returns true if and only if the Cartan names given by the strings N1 and N2 correspond to Cartan equivalent Cartan matrices. The Cartan names must be crystallographic; i.e., they cannot involve types H3, H4 and I2(m).

Example Cartan_IsomorphismAndEquivalence (H102E14)

> IsCoxeterIsomorphic("A1A1", "D2");
true
> IsCoxeterIsomorphic("B5", "C5");
true
> IsCartanEquivalent("B5", "C5");
false
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. Zn/Γ where Γ is the lattice generated by the rows of the Cartan matrix. The natural mapping ZntoZn/Γ is the second returned value.

Example Cartan_GroupOrders (H102E15)

> CoxeterGroupOrder("F4");
1152
> CoxeterGroupFactoredOrder("F4");
[ <2, 7>, <3, 2> ]
> NumPosRoots("F4");
24
> #FundamentalGroup("F4");
1
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_CartanName (H102E16)

> 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]
DynkinDiagram(M) : AlgMatElt ->
DynkinDiagram(G) : GrphUnd ->
DynkinDiagram(C) : AlgMatElt ->
DynkinDiagram(D) : GrphDir ->
DynkinDiagram(N) : MonStgElt ->
Print the Dynkin diagramof 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 Cartan_DynkinDiagram (H102E17)

> DynkinDiagram("A~5 D4 BC3");
A~5    1 - 2 - 3 - 4 - 5
       |               |
       ------- 6 -------
D4    9
     /
7 - 8
     \
      10
BC3    11 - 12 =>= 13
CoxeterDiagram(M) : AlgMatElt ->
CoxeterDiagram(G) : GrphUnd ->
CoxeterDiagram(C) : AlgMatElt ->
CoxeterDiagram(D) : GrphDir ->
CoxeterDiagram(N) : MonStgElt ->
Print the Coxeter diagramof 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 Cartan_CoxeterDiagram (H102E18)

> CoxeterDiagram("A~5 D4 BC3");
A~5    1 - 2 - 3 - 4 - 5
       |               |
       ------- 6 -------
D4    9
     /
7 - 8
     \
      10
BC3    11 - 12 === 13
V2.28, 13 July 2023