Constructing Elements#
- elt<G | L>: GrpLie, List -> GrpMatElt#
Given a group of Lie type \(G\) over the ring \(R\) and a list \(L\) of appropriate objects, construct an element of \(G\). Suppose the underlying root datum has dimension \(d\), rank \(n\), and roots \(\alpha_1,\dots,\alpha_{2N}\). Each entry in the list can be one of the following:
A tuple \(<r,t>\) where \(r=1,\dots,2N\) and \(t\in R\). This corresponds to the unipotent term \(x_r(t)\).
A sequence of tuples as in item (1).
A sequence \([t_1,\dots,t_N]\) of elements of \(R\). This is stored internally as \([t_1,\dots,t_N]\) but it represents the unipotent element \(x_{i_1}(t_{i_1})\cdots x_{i_N}(t_{i_N})\), where \(i_1\), \(i_2\), …, \(i_N\) is either \(1,2,\dots, N\) or the additive order of the positive roots of \(G\). (See below for more details.)
An integer \(r=1,\dots,2N\). This corresponds to the Weyl group representative \(n_r\).
A Weyl group element \(w\), either as a word or as a permutation. This corresponds to the Weyl group representative \(\dot{w}\).
A vector \(v\in R^d\) with each entry invertible. This corresponds to an element of the torus.
An element of \(G\), either previously constructed or (recursively) given as a list of terms of the forms 1 to 7.
Internally a unipotent component of an element of \(G\) is stored as a sequence \([t_1,\dots,t_N]\) of field (or ring) elements. This sequence represents the sequence \([x_1(t_1),\dots,x_N(t_N)]\) of root elements. However, its interpretation as a unipotent element depends on the collection method chosen for the multiplication. If the collection method is
SymbolicFromOutsideorCollectionFromOutsidethe sequence represents the product \(x_{i_1}(t_{i_1})\cdots x_{i_N}(t_{i_N})\) where \(i_1, i_2, \dots, i_N\) isAdditiveOrder(G)(i.e., the Papi order of the longest element of the Weyl group); for all other collection methods it represents \(x_1(t_1) \cdots x_N(t_N)\).CollectionFromOutsideis the default for non-sparse root data.
- Identity(G): GrpLie -> GrpLieElt#
- Id(G): GrpLie -> GrpLieElt#
- G ! 1: GrpLie, RngIntElt -> GrpLieElt#
- elt< G | >: GrpLie -> GrpLieElt#
The identity element of the group of Lie type \(G\).
- Example: Element Create (ex-749aa7)#
> G := GroupOfLieType("A5", Rationals() : Normalising := false); > V := VectorSpace(Rationals(), 5); > NumPosRoots(G); 15 > elt< G | <5,1/2>, 1,3,2, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15], > V![6,1/3,-1,3,2/3] >; x5(1/2) n1 n3 n2 x1(1) x6(6) x10(10) x13(13) x15(15) x2(2) x7(7) x11(11) x14(14) x3(3) x8(8) x12(12) x4(4) x9(9) x5(5) ( 6 1/3 -1 3 2/3)
- TorusTerm(G, r, t): GrpLie, RngIntElt, RngElt -> GrpLieElt#
The torus term \(h_r(t)=\alpha_r^\star\otimes t\) in the group of Lie type \(G\), where \(r\) is the index of the coroot \(\alpha_r^\star\) and \(t\) an element of the base ring of \(G\).
- CoxeterElement(G): GrpLie -> GrpPermElt#
The Coxeter element of the group of Lie type \(G\), i.e. the representative of the Coxeter element in the Weyl group of \(G\).
- Random(G): GrpLie -> GrpLieElt#
Uniform: BoolElt Default: true
An element of the (twisted or untwisted) finite group of Lie type \(G\) chosen at random. The base ring of \(G\) must be finite. If the optional parameter
Uniformis set totrue, the random elements to be distributed uniformly. If the optional parameterUniformis set tofalse, this function is much faster but the random elements are not distributed uniformly. Instead each double coset of the Borel subgroup occurs with equal frequency, and the elements are uniformly distributed within each double coset.
- Eltlist(g): GrpLieElt -> List#
The list corresponding to the element \(g\) of a group of Lie type.
- CentrePolynomials(G): GrpLie -> {}#
- CenterPolynomials(G): GrpLie -> {}#
A set of polynomials which are satisfied by the coordinates of a torus element \(h\) of the group of Lie type \(G\) if, and only if, \(h\) is in the centre of \(G\).
- Example: Centre (ex-1715e7)#
The centre of a semisimple group is finite, so the centre polynomials can be used to find all central elements.
> G := GroupOfLieType("B3", Rationals() : Isogeny:="SC"); > pols := CentrePolynomials(G); > pols; { -h[2] + h[3]^2, h[1]^2 - h[2], -h[1]*h[3]^2 + h[2]^2 } > S := Scheme(AffineSpace(Rationals(), 3), Setseq(pols)); > pnts := RationalPoints(S); > pnts; {@ (0, 0, 0), (1, 1, -1), (1, 1, 1) @}
The rational points of \(S\) can be converted into elements of \(G\), taking care to eliminate any point which has a coordinate equal to zero:
> V := VectorSpace(Rationals(), 3); > [ elt< G | V!Eltseq(pnt) > : pnt in pnts | &*Eltseq(pnt) ne 0 ]; [ (1 1 -1) , 1 ]