Cartan Matrices#

A Cartan matrix is a real valued matrix \(C=(c_{ij})_{i,j=1}^n\) satisfying the properties:

  1. \(c_{ii}=2\);

  2. \(c_{ij}\le 0\) for \(i\ne j\);

  3. \(c_{ij}=0\) if, and only if, \(c_{ji}=0\); and

4. if \(n_{ij}:=c_{ij}c_{ji}<4\), then \(n_{ij}=4\cos^2(\pi/m_{ij})\) for some integer \(m_{ij}\ge2\). In Magma, Cartan matrices can be defined over the integer ring (Chapter RngInt), the rational field (Chapter FldRat), number fields (Chapter FldNum:main), and cyclotomic fields (Chapter ChapFldCyc). The real field (Chapter ChapFldRe) is not allowed since it is not infinite precision. A Cartan matrix is called crystallographic if all its entries are integers.

Given a Cartan matrix, the corresponding Coxeter matrix \(M=(m_{ij})_{i,j=1}^n\) is defined by \(m_{ii}=1\); \(m_{ij}\) as in (4) if \(n_{ij}<4\); \(m_{ij}=\infty\) (ie, \(0\)) if \(n_{ij}\ge 4\). The significance of Cartan matrices is due to the following construction: Let \(X\) be a real inner-product space with basis \(\alpha_1,\dots,\alpha_n\). Take the unique basis \(\alpha^\star_1,\dots,\alpha^\star_n\) for \(X\) such that \((\alpha_i,\alpha_j^\star)=c_{ij}\). Let \(s_i\) be the reflection in \(\alpha_i\) and \(\alpha_i^\star\), i.e. \(s_i:V\rightarrow V\) is defined by \(vs_i= v-(v,\alpha_i^\star)\alpha_i\). Then the group generated by \(s_1,\dots,s_n\) is a Coxeter group with Coxeter matrix \(M\). In other words, a Cartan matrix specifies a faithful representation of the Coxeter group as a real reflection group. For more details on reflection groups see Chapter ChapGrpRfl.

\name{IntrIsCart}{IsCartanMatrix}(C)(): AlgMatElt BoolElt#
RealInjection : Any                          Default: \texttt{false}

Returns true if, and only if, the matrix \(C\) is a Cartan matrix.

Number field elements and cyclotomic field elements do not have a natural identification with real numbers. The RealInjection flag allows the user to provide one. If the base field of \(C\) is a number field, the flag should be an injection into the real field; if the base field is cyclotomic, the flag should be an injection into the complex field taking real values on the entries of \(C\). If no real injection is given, conditions (2) and (4) of the definition are not checked.

CartanMatrix(M): AlgMatElt AlgMatElt#
CartanMatrix(G): GrphUnd AlgMatElt#

Symmetric : BoolElt : false

BaseField : MonStgElt : “NumberField”

A Cartan matrix corresponding to the Coxeter matrix \(M\) or Coxeter graph \(G\). Note that the Cartan matrix of a Coxeter system is not unique. By default this function returns the Cartan matrix with \(c_{ij}=-4\cos^2(\pi/m_{ij})\), \(c_{ji}=-1\) when \(m_{ij}\ne2\) and \(i<j\). This matrix is crystallographic whenever there exists a crystallographic Cartan matrix corresponding to \(M\).

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 FldNum:main.

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

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

CartanMatrix(D): GrphDir AlgMatElt#

The crystallographic Cartan matrix corresponding to the Dynkin digraph \(D\).

Example: Cartan Matrix Construction#
> C := Matrix(2,2, [ 2,-3, -1,2 ]);
> C;
> IsCartanMatrix(C);
true
%%a> assert $1;
> CoxeterMatrix(C);
[1 6]
[6 1]
>
> G := PathGraph(4);
> AssignLabel(G, 1,2, 4);
> AssignLabel(G, 3,4, 4);
> CartanMatrix(G);
[ 2 -2  0  0]
[-1  2 -1  0]
[ 0 -1  2 -2]
[ 0  0 -1  2]
> CartanMatrix(G : Symmetric, BaseField := "Cyclotomic");
[2 zeta(8)_8^3 - zeta(8)_8 0 0]
[zeta(8)_8^3 - zeta(8)_8 2 -1 0]
[0 -1 2 zeta(8)_8^3 - zeta(8)_8]
[0 0 zeta(8)_8^3 - zeta(8)_8 2]
IsCoxeterIsomorphic(C1, C2): AlgMatElt, AlgMatElt RngIntElt#

Tests if the Cartan matrices \(C_1\) and \(C_2\) give rise to isomorphic Coxeter systems; i.e., their Coxeter matrices are equal modulo a permutation of the underlying basis. If true, a sequence giving the permutation of the underlying basis which takes the Coxeter matrix of \(C_1\) to the Coxeter matrix of \(C_2\) is also returned.

IsCartanEquivalent(C1, C2): AlgMatElt, AlgMatElt BoolElt#

Returns true if, and only if, the crystallographic Cartan matrices \(C_1\) and \(C_2\) are Cartan equivalent, i.e. they are equal modulo permutation of the underlying basis. If so, a sequence giving the permutation of the underlying basis which takes \(C_1\) to \(C_2\) is also returned.

Example: Cartan Matrix Equivalence#

Cartan equivalence is a stronger condition than Coxeter isomorphism.

> C1 := Matrix(2,2, [ 2,-2, -2,2 ]);
> C2 := Matrix(2,2, [ 2,-1, -5,2 ]);
> IsCoxeterIsomorphic(C1, C2);
true [ 1, 2 ]
> IsCartanEquivalent(C1, C2);
false
%%a> assert not $1;
NumberOfPositiveRoots(C): AlgMatElt RngIntElt#
NumPosRoots(C): AlgMatElt RngIntElt#

The number of positive roots of the root system with Cartan matrix \(C\). See Subsection Simple and Positive Roots for the definition of positive roots.

CoxeterGroupOrder(C): AlgMatElt .#
CoxeterGroupFactoredOrder(C): AlgMatElt .#

The (factored) order of the Coxeter group with Cartan matrix \(C\).

FundamentalGroup(C): AlgMatElt GrpAb#

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

Example: Cartan Matrix Operations#
> C := CartanMatrix(PathGraph(4));
> FundamentalGroup(C);
Abelian Group isomorphic to Z/5
Defined on 1 generator
Relations:
    5*$.1 = 0
Mapping from: Standard Lattice of rank 4 and degree 4 to Abelian Group
isomorphic to Z/5
Defined on 1 generator
Relations:
    5*$.1 = 0
IsCoxeterIrreducible(C): AlgMatElt BoolElt#

Returns true if, and only if, \(C\) is the Cartan matrix of an irreducible Coxeter system. If the Coxeter matrix is reducible, this function also returns a nontrivial subset \(I\) of \(\{1,\dots,n\}\) such that \(m_{ij}=2\) (i.e. \(c_{ij}=0\)) whenever \(i\in I\), \(j\notin I\).

IsCrystallographic(C): AlgMatElt BoolElt#

Returns true if, and only if, the Cartan matrix \(C\) is crystallographic, i.e. \(C\) has integral entries.

IsSimplyLaced(C): AlgMatElt BoolElt#

Returns true if, and only if, the Cartan matrix \(C\) is simply laced, i.e. all the entries in its Coxeter matrix are 1, 2, or 3.

Example: Cartan Matrix Properties#
> C := Matrix(2,2, [ 2,-2, -2,2 ]);
> IsCoxeterIrreducible(C);
true
%%a> assert $1;
> IsCrystallographic(C);
true
%%a> assert $1;
> IsSimplyLaced(C);
false
%%a> assert not $1;