[Next][Prev] [Right] [Left] [Up] [Index] [Root]

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) <= 0 for i != 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)=4cos^2(pi/m_(ij)) for some integer m_(ij)ge2.

In Magma, Cartan matrices can be defined over the integer ring (Chapter RING OF INTEGERS), the rational field (Chapter RATIONAL FIELD), number fields (Chapter ORDERS AND ALGEBRAIC FIELDS), and cyclotomic fields (Chapter CYCLOTOMIC FIELDS); the real field (Chapter REAL AND COMPLEX FIELDS) is not allowed since it is not infinite precision.

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)=Infinity if n_(ij) >= 4. The significance of Cartan matrices is due to the following construction: Let X be a real inner-product space with basis alpha_1, ..., alpha_n. Take the unique basis alpha^star_1, ..., 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 -> V is defined by vs_i= v - (v, alpha_i^star)alpha_i. Then the group generated by s_1, ..., s_n is a Coxeter group with Coxeter matrix M. In other words, a Cartan matrix specifies a representation of the Coxeter group as a real reflection group. For more details on reflection groups see Chapter REFLECTION GROUPS.

IsCartanMatrix( C ) : AlgMatElt -> BoolElt
Returns true if, and only if, C is a Cartan matrix.

     RealInjection: BoolElt              Default: false

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 c_(ij)= - 4cos^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)= - 2cos(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 ORDERS AND ALGEBRAIC 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 (H82E6)

> 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
Returns true if, and only if, the Cartan matrices C_1 and C_2 give rise to Coxeter isomorphic Coxeter groups, i.e. their Coxeter matrices are equal modulo permutation of the underlying basis. If true, we also return a sequence giving the permutation of the underlying basis which takes the Coxeter matrix of C_1 to the Coxeter matrix of C_2.
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 true, we also return a sequence giving the permutation of the underlying basis which takes C_1 to C_2.

Example Cartan_CartanMatrixEquivalence (H82E7)

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

CoxeterGroupOrder( C ) : AlgMatElt -> RngIntElt
The order of the Coxeter group with Cartan matrix C.
FundamentalGroup( C ) : AlgMatElt -> GrpAb
The fundamental group of the crystallographic Cartan matrix C, i.e. Z^n/Gamma where Gamma is the lattice generated by the rows of C.

Example Cartan_CartanMatrixOperations (H82E8)

> 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 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. Note that this is only possible if all the entries in the corresponding Coxeter matrix are 1, 2, 3, 4, 6, or Infinity.
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 (H82E9)

> C := Matrix( 2,2, [ 2,-2, -2,2 ] );
> IsCoxeterIrreducible( C );
true
> IsCrystallographic( C );
true
> IsSimplyLaced( C );
false


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]