We first describe some optional parameters that are common to many functions described below.
var Isogeny: Any Default: "Ad" The optional parameter Isogeny specifies the isomorphism class of the root datum within the Cartan equivalence class (see Subsection Isogeny of Split Reduced Root Data). For irreducible Cartan names, Isogeny can be one of the following:
var Signs: Any Default: 1 Many of the constants associated with root data depend on the choice of the sign εrs for each extraspecial pair (r, s). This parameter allows the user to fix these signs for the root datum R by giving a sequence s of length NumExtraspecialPairs(R) consisting of integers 1 or -1. It is also possible to set Signs to 1 instead of a sequence of all 1 and to -1 instead of a sequence of all -1.
var Twist: Any Default: 1 This optional parameter defines a Γ-action of an extended root datum and will accept the following values:
Isogeny: Any Default: "Ad"
Signs: Any Default: 1
Twist: Any Default: 1
A root datum with Cartan name given by the string N (see Section Finite and Affine Coxeter Groups). In addition to the possible Cartan names described in Section Finite and Affine Coxeter Groups, this function will also accept "Tn" as a component of the Cartan name, which stands for an n-dimensional toral subdatum. Note, however, that this addition is for input only and will not appear in the string returned by CartanName when applied to the resulting root datum (see example below).If the optional parameter Isogeny is a list, its length should be equal to the total number of components. Entries of this list corresponding to toral components will be ignored.
If the corresponding Coxeter group is infinite affine, an error is flagged.
> RootDatum("E6"); Adjoint root datum of type E6 > RootDatum("E6" : Isogeny := "SC"); Simply connected root datum of type E6With nonirreducible root data the isogeny can be given as a list.
> R := RootDatum("A5 B3" : Isogeny := [* 3, "Ad" *]); > R : Maximal; Root datum of type A5 B3 with simple roots [1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0] [0 0 1 0 0 0 0 0] [0 0 0 1 0 0 0 0] [1 2 0 1 3 0 0 0] [0 0 0 0 0 1 0 0] [0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 1] and simple coroots [ 2 -1 0 0 0 0 0 0] [-1 2 -1 0 -1 0 0 0] [ 0 -1 2 -1 1 0 0 0] [ 0 0 -1 2 -1 0 0 0] [ 0 0 0 -1 1 0 0 0] [ 0 0 0 0 0 2 -1 0] [ 0 0 0 0 0 -1 2 -1] [ 0 0 0 0 0 0 -2 2] > > RootDatum("E6 A3 B4" : Isogeny := "SC"); Simply connected root datum of type E6 A3 B4Nonsemisimple root data can be constructed by specifying a central torus.
> R := RootDatum("B3 T2 A2" : Isogeny := [* "SC", 0, "Ad" *]); > R; R: Root datum of type B3 A2 > Dimension(R), Rank(R); 7 5 > SimpleCoroots(R); [ 1 0 0 0 0 0 0] [ 0 1 0 0 0 0 0] [ 0 0 1 0 0 0 0] [ 0 0 0 0 0 2 -1] [ 0 0 0 0 0 -1 2]The following code creates the three root data of type D6 with isogeny groups of size 2 using injections into the fundamental group.
> G< a, b > := FundamentalGroup("D6"); > G; Abelian Group isomorphic to Z/2 + Z/2 Defined on 2 generators Relations: 2*a = 0 2*b = 0 > _, inj1 := sub< G | a >; > R1 := RootDatum("D6" : Isogeny := inj1); > _, inj2 := sub< G | b >; > R2 := RootDatum("D6" : Isogeny := inj2); > _, inj3 := sub< G | a*b >; > R3 := RootDatum("D6" : Isogeny := inj3);
> R := RootDatum("A5" : Twist := 2 ); R; R: Twisted adjoint root datum of type 2A5,3 > R eq RootDatum("A5" : Twist := < Sym(2), [Sym(5)|(1,5)(2,4)] > ); true > R eq RootDatum("A5" : Twist := < {{1,5},{2,4},{3}}, 2 > ); true > RootDatum("D4" : Twist := 1); Adjoint root datum of type D4 > RootDatum("D4" : Twist := 2); Twisted adjoint root datum of type 2D4,3 > RootDatum("D4" : Twist := 3); Twisted adjoint root datum of type 3D4,2 > RootDatum("D4" : Twist := 6); Twisted adjoint root datum of type 6D4,2 > > R := RootDatum("A2"); > TwistedRootDatum(R : Twist := 2); Twisted adjoint root datum of type 2A2,1
Isogeny: Any Default: "Ad"
Signs: Any Default: 1
Twist: Any Default: 1
Nonreduced: SetEnum Default: {}
A semisimple root datum with crystallographic Cartan matrix C. If the corresponding Coxeter group is infinite, an error is flagged.
Isogeny: Any Default: "Ad"
Signs: Any Default: 1
Twist: Any Default: 1
Nonreduced: SetEnum Default: {}
A semisimple root datum with Dynkin digraph D. If the corresponding Coxeter group is infinite, an error is flagged.
Signs: Any Default: 1
Twist: Any Default: 1
Nonreduced: SetEnum Default: {}
The root datum with simple roots given by the rows of the matrix A and simple coroots given by the rows of the matrix B. The matrices A and B must have the following properties:
- 1.
- A and B must be integral matrices with the same number of rows and the same number of columns;
- 2.
- the number of columns must be at least the number of rows; and
- 3.
- ABt must be the Cartan matrix of a finite Coxeter group.
> A := Matrix(2,3, [1,-1,0, -1,1,-1]); > B := Matrix(2,3, [1,-1,1, 0,1,-1]); > RootDatum(A, B); Root datum of type G2An example of a non-reduced root datum and usage of Nonreduced argument:
> C := CoxeterMatrix("B2B2"); > RootDatum(C); Adjoint root datum of type B2 B2 > RootDatum(C : Nonreduced:={2}); Adjoint root datum of type BC2 B2 > RootDatum(C : Nonreduced:={4}); Adjoint root datum of type B2 BC2 > RootDatum(C : Nonreduced:={2,4}); Adjoint root datum of type BC2 BC2
Signs: Any Default: 1
Twist: Any Default: 1
The irreducible root datum with Cartan name Xn.
Signs: Any Default: 1
Twist: Any Default: 1
The standard root datum with Cartan name Xn, i.e. the root datum with the standard inner product equal to the Coxeter form up to a constant. For technical reasons, this is only possible for the classical types, i.e. X must be "A", "B", "C", or "D". Note that the standard root datum is not semisimple for type An.
> for X in ["A","B","G"] do > print NumPosRoots(IrreducibleRootDatum(X, 2)); > end for; 3 4 6
Twist: Any Default: 1
The toral root datum of dimension n, i.e., the n-dimensional root datum with no roots or coroots.
> ToralRootDatum(3); Toral root datum of dimension 3 > M := Matrix(Rationals(),3,3,[0,1,0,1,0,0,0,0,1]);M; [0 1 0] [1 0 0] [0 0 1] > ToralRootDatum(3 : Twist := <Sym(2),[M],[M]>); Twisted toral root datum of dimension 3
The trivial root datum of dimension 0.
Sparse root data differ from the usual root data only in the internal representation of the objects. The internal representation is less memory expensive and requires less time for creation. Sparse root data have type RootDtmSprs, which is a subcategory of RootDtm.
There are some limitation on the root data which can have sparse representation. First, sparse representation only makes sense for classical root data, that is of types A, B, C and D. At the moment only root data with a connected Coxeter diagram may have sparse representation and no twisted sparse root data can be constructed.
These functions have the same syntax as their counterparts without the "Sparse" in the name (see Section Constructing Root Data). The root datum returned has sparse representation. See [CHM08] for the algorithms used to construct sparse root data.
> SparseRootDatum("A2"); Sparse adjoint root datum of dimension 2 of type A2 > SparseStandardRootDatum("A", 2); Sparse root datum of dimension 3 of type A2 > SparseRootDatum("A2") eq RootDatum("A2"); true
Return a sparse root datum equal to the root datum R.
Return a non-sparse root datum equal to the root datum R.
> R := SparseRootDatum("A2"); > T := ToralRootDatum(3); > R+T; Sparse root datum of dimension 5 of type A2 > R+R; Adjoint root datum of dimension 4 of type A2 A2