Operations 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, [RngIntElt], Map

Returns true if, and only if, \(R_1\) and \(R_2\) are isomorphic root data. If true, the second value returned is a sequence giving the simple root of \(R_2\) corresponding to each simple root of \(R_1\), and the third value returned is an isomorphism \(R_1\to R_2\). This function is currently only implemented for semisimple root data.

IsCartanEquivalent(R1, R2): RootDtm, RootDtm -> BoolElt, SeqEnum

Returns true if and only if the root data \(R_1\) and \(R_2\) are Cartan equivalent; i.e. they have isomorphic Dynkin diagrams. If true, the second value returned is a sequence giving the simple root of \(R_2\) corresponding to each simple root of \(R_1\).

IsIsogenous(R1, R2): RootDtm, RootDtm -> BoolElt, SeqEnum, RootDtm, Map, Map, RootDtm, Map, Map

Returns true if, and only if, \(R_1\) and \(R_2\) are isogenous root data. If true, the subsequent values returned are: a sequence giving the root of \(R_2\) corresponding to each root of \(R_1\), the corresponding adjoint root datum \(R_{ad}\), the morphisms \(R_{ad}\to R_1\) and \(R_{ad}\to R_2\), the corresponding simply connected root datum \(R_{sc}\), and the morphisms \(R_1\to R_{sc}\) and \(R_2\to R_{sc}\).

Example: Isomorphism and Isogeny of Root Data (ex-864e8f)

Run in calculator (opens in a new tab)

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, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
Adjoint root datum of type A3
Mapping from: RootDtm: ad to RootDtm: ad
Mapping from: RootDtm: ad to RootDtm: sc
Simply connected root datum of type A3
Mapping from: RootDtm: ad to RootDtm: sc
Mapping from: RootDtm: sc to RootDtm: sc

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 ]

Run in calculator (opens in a new tab)

CartanName(R): RootStr -> MonStgElt

The Cartan name of the root datum \(R\) (Section Finite and Affine Coxeter Groups).

TwistedCartanName(R): RootDtm -> MonStgElt

The twisted Cartan name of the root datum \(R\). E.g., "2A3,2".

CoxeterDiagram(R): RootStr

Print the Coxeter diagram of the root datum \(R\) (Section Finite and Affine Coxeter Groups).

DynkinDiagram(R): RootStr

Print the Dynkin diagram of the root datum \(R\) (Section Finite and Affine Coxeter Groups).

CoxeterMatrix(R): RootStr -> AlgMatElt

The Coxeter matrix of the root datum \(R\) (Section Coxeter Matrices).

CoxeterGraph(R): RootStr -> GrphUnd

The Coxeter graph of the root datum \(R\) (Section Coxeter Graphs).

CartanMatrix(R): RootStr -> AlgMatElt

The Cartan matrix of the root datum \(R\) (Section Cartan Matrices).

DynkinDigraph(R): RootStr -> GrphDir

The Dynkin digraph of the root datum \(R\) (Section Dynkin Digraphs).

Example: Dynkin and Coxeter Diagrams (ex-de9285)
> R := RootDatum("F4");
> DynkinDiagram(R);

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

F4    1 - 2 === 3 - 4

Run in calculator (opens in a new tab)

GammaAction(R): RootDtm -> Rec

The \(\Gamma\)-action of the root datum \(R\). This is a record consisting of four elements: gamma is the Group \(\Gamma\) acting on \(R\), perm_ac is the homomorphism defining the permutation action of \(\Gamma\) on the set of all roots of \(R\), finally mats_rt and mats_co are sequences of matrices defining the action of \(\Gamma\) on the root and coroot spaces of \(R\).

GammaRootSpace(R): RootDtm -> GSetEnum, Map
GammaCorootSpace(R): RootDtm -> GSetEnum, Map

Given a root datum \(R\), create the fixed space of \(\Gamma\) acting on the (co)root space \(V = {\mathbb{Q}}\otimes X\) of \(R\) as well as the embedding in \(V\).

GammaOrbitOnRoots(R, r): RootDtm, RngIntElt -> GSetEnum

The orbit through the \(r\)th root of the \(\Gamma\)-action on the root datum \(R\).

GammaOrbitsOnRoots(R): RootDtm -> SeqEnum[GSetEnum]
PositiveGammaOrbitsOnRoots(R): RootDtm -> SeqEnum[GSetEnum]
NegativeGammaOrbitsOnRoots(R): RootDtm -> SeqEnum[GSetEnum]
ZeroGammaOrbitsOnRoots(R): RootDtm -> SeqEnum[GSetEnum]

The sequence of all (respectively positive, negative, and zero) orbits of the \(\Gamma\)-action on the root datum \(R\) (Section Extended Root Data).

GammaActionOnSimples(R): RootDtm -> HomGrp

The \([\Gamma]\)-action on the simple (co)roots of the root datum \(R\). (Section Extended Root Data). This function was called GammaActionPi in the last release.

OrbitsOnSimples(R): RootDtm -> SeqEnum[GSetEnum]

The sequence of all orbits of the \([\Gamma]\)-action on the simple (co)roots of the root datum \(R\) (Section Extended Root Data). This function was called OrbitsPi in the last release.

DistinguishedOrbitsOnSimples(R): RootDtm -> SeqEnum[GSetEnum]

The sequence of distinguished orbits of the \([\Gamma]\)-action on the simple (co)roots of the root datum \(R\) (Section Extended Root Data). This function was called DistinguishedOrbitsPi in the last release.

BaseRing(R): RootDtm -> RngInt

The base ring of the root datum \(R\) is the field of rational numbers.

Rank(R): RootStr -> RngIntElt
AbsoluteRank(R): RootDtm -> RngIntElt

The (absolute) rank of the root datum \(R\), i.e. the number of simple (co)roots.

RelativeRank(R): RootDtm -> RngIntElt

The relative rank of the root datum \(R\), i.e. the number of simple (co)roots of the relative root system. This is the same as absolute rank for split root data.

Dimension(R): RootStr -> 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.

TwistingDegree(R): RootDtm -> RngIntElt

The twisting degree of the root datum \(R\), i.e. the order of \(\Gamma\) divided by the kernel of the \([\Gamma]\)-action.

AnisotropicSubdatum(R): RootDtm -> RootDtm

The anisitropic subdatum of the root datum \(R\).

Example: Operations for Twisted Root Data (ex-9c2a05)

Run in calculator (opens in a new tab)

Consider the twisted root datum of type \({}^2A_{3,1}\) with distinguished orbit \(\{2\}\):

> R := RootDatum( "A3" : Twist := < {{2}}, 2 > );

First, print out the action of \(\Gamma\) on the root datum:

> GammaAction(R);
rec<recformat<gamma: GrpPerm, perm_ac: HomGrp, mats_rt, mats_co> |
     gamma := Permutation group acting on a set of cardinality 4
     Order = 4 = 2^2
          (1, 2, 3, 4),
     perm_ac := Homomorphism of GrpPerm: $, Degree 4, Order 2^2 into GrpPerm: $,
     Degree 12, Order 2^10 * 3^5 * 5^2 * 7 * 11 induced by
          (1, 2, 3, 4) |--> (1, 3, 7, 9)(2, 4, 6, 5)(8, 10, 12, 11),
     mats_rt := [
          [ 0  0  1]
          [ 1  1  0]
          [-1  0  0]
     ],
     mats_co := [
          [ 0  0  1]
          [ 0  1  0]
          [-1  1  0]
     ]
     >

Compute the orbits of the \(\Gamma\)-action:

> PositiveGammaOrbitsOnRoots(R);
[
     GSet{ 2, 4, 5, 6 }
]
> NegativeGammaOrbitsOnRoots(R);
[
     GSet{ 8, 10, 11, 12 }
]
> ZeroGammaOrbitsOnRoots(R);
[
     GSet{ 1, 3, 7, 9 }
]
> &+[ Root(R,r) : r in ZeroGammaOrbitsOnRoots(R)[1] ];
(0 0 0)

Compute the \([\Gamma]\)-action and its orbits:

> GammaActionOnSimples(R);
Homomorphism of GrpPerm: $, Degree 4, Order 2^2 into GrpPerm: $,
Degree 3, Order 2 * 3 induced by
     (1, 2, 3, 4) |--> (1, 3)
> OrbitsOnSimples(R);
[
     GSet{ 2 },
     GSet{ 1, 3 }
]
> DistinguishedOrbitsOnSimples(R);
[
     GSet{ 2 }
]

Absolute and relative rank and the twisting degree, as well as their appearance in the name of the root datum:

> AbsoluteRank(R);
3
> RelativeRank(R);
1
> TwistingDegree(R);
2
> R;
R: Twisted adjoint root datum of type 2A3,1

anisotropic subdatum:

> A := AnisotropicSubdatum(R); A;
A: Twisted root datum of type 2(A1 A1)2,0
> GammaAction(A)`perm_ac;
Homomorphism of GrpPerm: $, Degree 4, Order 2^2 into GrpPerm: $,
Degree 4, Order 2^2 induced by
     (1, 2, 3, 4) |--> (1, 2, 3, 4)

Run in calculator (opens in a new tab)

CoxeterGroupOrder(R): RootStr -> RngIntElt

The order of the (split) Coxeter group of the root datum \(R\).

GroupOfLieTypeOrder(R, q): RootDtm, RngElt -> RngIntElt

The order of the group of Lie type with split root datum \(R\) over the field of cardinality \(q\).

GroupOfLieTypeFactoredOrder(R, q): RootDtm, RngElt -> RngIntElt

The factored order of the group of Lie type with split root datum \(R\) over the field of order \(q\).

Example: Order of a Group of Lie Type (ex-da6059)

Run in calculator (opens in a new tab)

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 - 1, 4>,
    <q, 24>,
    <q + 1, 4>,
    <q^2 - q + 1, 2>,
    <q^2 + 1, 2>,
    <q^2 + q + 1, 2>,
    <q^4 - q^2 + 1, 1>,
    <q^4 + 1, 1>
]
>
> R := RootDatum("B2");
> ord := GroupOfLieTypeOrder(R, q);
> forall{ q : q in [2..200] | not IsPrimePower(q) or
>   Evaluate(ord, q) eq GroupOfLieTypeOrder(R, q) };
true

Run in calculator (opens in a new tab)

FundamentalGroup(R): RootDtm -> GrpAb, Map

The fundamental group \(\Lambda/{\mathbb{Z}}\Phi\) of the root datum \(R\) together with the projection \(\Lambda\rightarrow\Lambda/{\mathbb{Z}}\Phi\). See Subsection Isogeny of Split Reduced Root Data.

IsogenyGroup(R): RootDtm -> GrpAb, Map

The isogeny group \(X/{\mathbb{Z}}\Phi\) of the root datum \(R\) together with the projection \(X\rightarrow X/{\mathbb{Z}}\Phi\). If \(R\) is semisimple, the injection \(X/{\mathbb{Z}}\Phi\rightarrow\Lambda/{\mathbb{Z}}\Phi\) is also returned. See Subsection Isogeny of Split Reduced Root Data.

CoisogenyGroup(R): RootDtm -> GrpAb, Map

The coisogeny group \(Y/{\mathbb{Z}}\Phi^\star\) of the root datum \(R\) together with the projection \(Y\rightarrow Y/{\mathbb{Z}}\Phi^\star\). If \(R\) is semisimple, the projection \(Y/{\mathbb{Z}}\Phi^\star\rightarrow\Lambda/{\mathbb{Z}}\Phi\) is also returned. See Subsection Isogeny of Split Reduced Root Data.

Example: Isogeny and Fundamental Groups (ex-2f8db1)

Run in calculator (opens in a new tab)

In the semisimple case, the fundamental group contains the isogeny group, with quotient isomorphic to 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)

Run in calculator (opens in a new tab)