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

Operators on Root Data

R1 eq R2 : RootDtm, RootDtm -> BoolElt
Returns true if, and only if, R_1 and R_2 are identical root data.
IsIsomorphic( R1, R2 ) : RootDtm, RootDtm -> BoolElt
Returns true if, and only if, R_1 and R_2 are isomorphic root data. If true, we also return a sequence giving the simple root of R_2 corresponding to each simple root of R_1.
IsCartanEquivalent( R1, R2 ) : RootDtm, RootDtm -> BoolElt
Returns true if, and only if, the root data R_1 and R_2 Cartan equivalent, i.e. they have isomorphic Dynkin diagrams. If true, we also return a sequence giving the simple root of R_2 corresponding to each simple root of R_1.
IsIsogenous( R1, R2 ) : RootDtm, RootDtm -> BoolElt
Returns true if, and only if, R_1 and R_2 are isogenous root data. If true, we also return a sequence giving the simple root of R_2 corresponding to each simple root of R_1.

Example RootDtm_IsomorphismIsogeny (H80E4)

An example of isogenous root data:

> R1 := RootDatum( "A3" );
> R2 := RootDatum( "A3" : Isogeny := "SC" );
> R1 eq R2;
false
> IsIsomorphic( R1, R2 );
false
> IsCartanEquivalent( R1, R2 );
true [ 1, 2, 3 ]
> IsIsogenous( R1, R2 );
true [ 1, 2, 3 ]
An example of distinct isomorphic root data:

> C := CartanMatrix( "B2" );
> R1 := RootDatum( C );
> R2 := RootDatum( Transpose( C ) );
> R1; R2;
Adjoint root datum of type B2
Adjoint root datum of type C2
> R1 eq R2;
false
> IsIsomorphic( R1, R2 );
true [ 2, 1 ]

CartanName( R ) : RootDtm -> List
The Cartan name of the root datum R (Section Finite and Affine Coxeter Groups).
CoxeterDiagram( R ) : RootDtm ->
Print the Coxeter diagram of the root datum R (Section Finite and Affine Coxeter Groups).
DynkinDiagram( R ) : RootDtm ->
Print the Dynkin diagram of the root datum R (Section Finite and Affine Coxeter Groups).
CoxeterMatrix( R ) : RootDtm -> AlgMatElt
The Coxeter matrix of the root datum R (Section Coxeter Matrices).
CoxeterGraph( R ) : RootDtm -> GrphUnd
The Coxeter graph of the root datum R (Section Coxeter Graphs).
CartanMatrix( R ) : RootDtm -> AlgMatElt
The Cartan matrix of the root datum R (Section Cartan Matrices).
DynkinDigraph( R ) : RootDtm -> GrphDir
The Dynkin digraph of the root datum R (Section Dynkin Digraphs).

Example RootDtm_Diagrams (H80E5)

> R := RootDatum( "F4" );
> DynkinDiagram( R );

F4    1 - 2 =>= 3 - 4
> CoxeterDiagram( R );

F4    1 - 2 === 3 - 4

BaseRing( R ) : RootDtm -> RngInt
The ring of integers.
Rank( R ) : RootDtm -> RngIntElt
The rank of the root datum R, i.e. the number of simple (co)roots.
Dimension( R ) : RootDtm -> RngIntElt
The dimension of the root datum R, i.e. the dimension of the (co)root space. This is at least as large as the rank, with equality when R is semisimple.
CoxeterGroupOrder( R ) : RootDtm -> RngIntElt
The order of the Coxeter group of the root datum R.

Example RootDtm_BasicOperations (H80E6)

> R := RootDatum( "G2" );
> RootSpace( R );
Standard Lattice of rank 2 and degree 2
> CorootSpace( R );
Standard Lattice of rank 2 and degree 2
> SimpleRoots( R );
[1 0]
[0 1]
> SimpleCoroots( R );
[ 2 -3]
[-1  2]
> CartanMatrix( R );
[ 2 -1]
[-3  2]
> Rank( R ) eq Dimension( R );
true

GroupOfLieTypeOrder( R, q ) : AlgMatElt, RngElt -> RngIntElt
The order of the group of Lie type with root datum R over the field of cardinality q.
GroupOfLieTypeFactoredOrder( C, q ) : AlgMatElt, RngElt -> RngIntElt
The factored order of the group of Lie type with root datum R over the field of order q.

Example RootDtm_GroupOfLieTypeOrder (H80E7)

As well as accepting a specific prime power, these functions also take an indeterminate so that the generic order formula can be computed.

> P<q> := PolynomialRing( Integers() );
> R := RootDatum( "F4" );
> GroupOfLieTypeFactoredOrder( R, q );
[
    <q^4 + 1, 1>,
    <q, 24>,
    <q^2 - q + 1, 2>,
    <q^4 - q^2 + 1, 1>,
    <q - 1, 8>,
    <q^2 + 1, 2>,
    <q + 1, 4>,
    <q^2 + q + 1, 2>
]
> 
> R := RootDatum( "B2" );
> ord := GroupOfLieTypeOrder( R, q );
> for r in [2..20] do
>   if IsPrimePower( r ) then
>     print r, Evaluate( ord, r ) eq GroupOfLieTypeOrder( R, r );
>   end if;
> end for;
2 true
3 true
4 true
5 true
7 true
8 true
9 true
11 true
13 true
16 true
17 true
19 true

FundamentalGroup( R ) : RootDtm -> GrpAb
The fundamental group Lambda/Z Phi of the root datum R together with the projection Lambda -> Lambda/Z Phi. See Subsection Isogeny.
IsogenyGroup( R ) : RootDtm -> GrpAb, Map
The isogeny group X/Z Phi of the root datum R together with the injection X/Z Phi -> Lambda/Z Phi. See Subsection Isogeny.
CoisogenyGroup( R ) : RootDtm -> GrpAb, Map
The coisogeny group Y/Z Phi^star of the root datum R together with the projection Y/Z Phi^star -> Lambda/Z Phi. See Subsection Isogeny.

Example RootDtm_IsogenyGroups (H80E8)

In the semisimple case, the fundamental group is a direct sum of the isogeny group and the coisogeny group.

> R := RootDatum( "A5" : Isogeny := 3 );
> F := FundamentalGroup( R );
> G := IsogenyGroup( R );
> H := CoisogenyGroup( R );
> #G * #H eq #F;
true
Nonsemisimple root data have infinite isogeny groups.

> R := StandardRootDatum( "A", 5 );
> IsogenyGroup( R );
Abelian Group isomorphic to Z
Defined on 1 generator (free)


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