Cartan Matrices

A Cartan matrix is a real valued matrix C=(cij)i, j=1n satisfying the properties:

1.
cii=2;
2.
cij≤0 for i≠j;
3.
cij=0 if, and only if, cji=0; and
4.
if nij:=cijcji<4, then nij=4cos2(π/mij) for some integer mijge2.

In Magma, Cartan matrices can be defined over the integer ring (Chapter RING OF INTEGERS), the rational field (Chapter RATIONAL FIELD), number fields (Chapter NUMBER FIELDS), and cyclotomic fields (Chapter CYCLOTOMIC FIELDS). The real field (Chapter REAL AND COMPLEX FIELDS) 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=(mij)i, j=1n is defined by mii=1; mij as in (4) if nij<4; mij=∞ (ie, 0) if nij≥4. The significance of Cartan matrices is due to the following construction: Let X be a real inner-product space with basis α1, ..., αn. Take the unique basis αstar1, ..., αstarn for X such that (αi, αjstar)=cij. Let si be the reflection in αi and αistar, i.e. si:V -> V is defined by vsi= v - (v, αistari. Then the group generated by s1, ..., sn 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 REFLECTION GROUPS.

IsCartanMatrix(C) : AlgMatElt -> BoolElt
    RealInjection: Any                  Default: 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                  Default: false
    BaseField: MonStgElt                Default: "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 cij= - 4cos2(π/mij), cji= - 1 when mijne2 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 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.

CartanMatrix(D) : GrphDir -> AlgMatElt
The crystallographic Cartan matrix corresponding to the Dynkin digraph D.

Example Cartan_CartanMatrixConstruction (H102E6)

> C := Matrix(2,2, [ 2,-3, -1,2 ]);
> C;
> IsCartanMatrix(C);
true
> 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 C1 and C2 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 C1 to the Coxeter matrix of C2 is also returned.
IsCartanEquivalent(C1, C2) : AlgMatElt, AlgMatElt -> BoolElt
Returns true if, and only if, the crystallographic Cartan matrices C1 and C2 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 C1 to C2 is also returned.

Example Cartan_CartanMatrixEquivalence (H102E7)

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
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. Zn/Γ where n is the degree of C and Γ is the lattice generated by the rows of C. The natural mapping ZntoZn/Γ is the second returned value.

Example Cartan_CartanMatrixOperations (H102E8)

> 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, ..., n} such that mij=2 (i.e. cij=0) whenever i∈I, j∉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_CartanMatrixProperties (H102E9)

> C := Matrix(2,2, [ 2,-2, -2,2 ]);
> IsCoxeterIrreducible(C);
true
> IsCrystallographic(C);
true
> IsSimplyLaced(C);
false
V2.28, 13 July 2023