atlas Library · Script File
tits.at
An element of the (\delta-extended) Tits group is represented by (RootDatum rd,ratvec v,mat theta) representing \exp(2\ii\pi v) \sigma_w d where \theta is the the action of wd on X^*, with w\in W and d is a distinguished involution of that lattice, allowing for both d=\delta and d=identity. In fact we do not directly represent w (separately from d), although we do implement multiplications by elements of W (where w represents the canonical lift \sigma_w) and we do have a well defined notion of length change for such operations, in terms of counting roots in the \theta image of the poscoroots. So v is a rational coweight taken modulo 1; theta need not be an involution. Note that theta is defined as operating from left on X^*; for left action of theta on v, use the transpose inverse (right-multiply v by inverse(theta)). The set of values for which \theta is the identity is the torus, an Abelian normal subgroup of our Tits group. The basic ingredients of the groups structure are the fact that (\sigma_s)^2 for Weyl group generators is a tutus element m_s, represented by v=simple_coroot(rd,s)/2, and the commutation relations \sigma_s*v=s(v)*\sigma_s where s(v)=v*M_s for the matrix M_s of s. Note that if we had used a doubled scale for v (and consequently the map $z\mapsto\exp(\ii\pi)$ as well as reduction modulo 2 rather than 1), this would have avoided many divisions by 2; it might have been a better idea.
Definitions in source order
Tits_elt type
set_type [ Tits_elt = (RootDatum root_datum,ratvec torus_part,mat theta) ]
Fields: root_datum, torus_part, theta
=
= (Tits_elt(,v,theta),Tits_elt(,u,eta)) = boolequality test assumes the root data agree, without check (though it could)
also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, K_highest_weights.at, nilpotent_orbits.at, cyclotomic.at, polynomial.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
!=
!= ((Tits_elt,Tits_elt)p) = boolalso defined in basic.at, combinatorics.at, synthetic.at, hash.at, cyclotomic.at, polynomial.at, cyclotomicMat.at
tits_identity
tits_identity (RootDatum rd) = Tits_eltidentity in Tits group
tits_delta 2 overloads
tits_delta (RootDatum rd,mat delta) = Tits_eltelement (torus factor=1)*delta in twisted Tits group
tits_delta (RealForm G) = Tits_eltright
right (Tits_elt(rd,v,theta), int s) = Tits_eltright multiplication by sigma_s, where s must index a simple root
also in this file at line 71, line 80; also defined in complex.at
left 2 overloads
left (int s,Tits_elt(rd,v,theta)) = Tits_eltleft multiplication by sigma_s, where s must index a simple root
left (WeylElt w,Tits_elt xi) = Tits_eltmultiplication by canonical lift of WeylElt
also in this file at line 76; also defined in complex.at
right
right (Tits_elt xi, WeylElt w) = Tits_eltalso in this file at line 45, line 80; also defined in complex.at
left
left ((ratvec,int)(v,s), Tits_elt xi) = Tits_eltleft multiply by simple generator with a torus part: \exp(2i\pi v)\sigma_s
also in this file at line 55, line 67; also defined in complex.at
right
right (Tits_elt xi, (ratvec,int)(v,s)) = Tits_eltright multiply by simple generator with a torus part: \exp(2i\pi v)\sigma_s
also in this file at line 45, line 71; also defined in complex.at
conjugate 2 overloads
conjugate (int s, Tits_elt xi) = Tits_eltconjugate by simple generator sigma_s
conjugate (WeylElt w, Tits_elt xi) = Tits_eltconjugate by canonical lift sigma_w of Weyl group element
also defined in basic.at
multiply
multiply (Tits_elt(rd,v,theta), Tits_elt( ,u,eta)) = Tits_eltfor general multiplication, we allow theta and eta to be in either of the
W-cosets (that of the identity and of \delta). The basic formula is that if
\sigma_w denotes the canonical lift of w to the Tits group, then one has
\sigma_{w_1} \sigma_{w_2} = m_{S(w_1,w_2)} \sigma_{w_1 w_2} ,
where the set of posroots
S(w_1,w_2) = \Delta^+ \cap w( \Delta^- \cap w'(\Delta^+) ) ,
is transformed into a torus element m_{S(w_1,w_2)} by applying the map
v\mapsto\exp(\pi\ii t) to the sum of the corresponding coroots. (The proof is
by induction on the length of w_1: for the statrting case w_1=e, the set S is
empty making the result trivial. Otherwise write w_1=sw with l(w)<l(w_1):
then S(w_1,w_2) is obtained from s.S(w,w_1) (which is a set of posroots) by
possibly adding the simple root \alpha_s, in the case l(w_1w_2)<l(ww_2).)
The code below actually computes S using matrices representing coroots as
their columns (so that the passage from S to m_S is obtained by taking the
half-sum of the columns modulo 1). The action of \theta,\eta on such a matrix
is then by left multiplication by the transpose inverse (a right-action).
assume rd
also defined in lazy_lists.at
*
* = multiply@(Tits_elt,Tits_elt)also defined in basic.at, extParamPol.at, complex.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at, synthetic.at, Weylgroup.at, group_operations.at, ratmat.at, twisted_root_datum.at, cyclotomic.at, polynomial.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, hodge_functions.at, sparse.at, lazy_lists.at
inverse
inverse (Tits_elt(rd,v,theta)) = Tits_eltinverse uses the bicycle lemma (note the (2\.../2) "bicycle" structure):
sigma_w*sigma_{w^{-1}} = exp(2\pi i(rho^vee-rho^vee*w^{-1})/2)
{this is a joke; the two 2's cancel, but doing so destroys the bicycle image}
whence
inverse(Tits_elt:(0,theta)) = Tits_elt:(rho_check*(1-theta)/2,inverse(theta))
(this formula remains valid in both cosets of W)
and inverse(Tits_elt:(v,theta))=inverse(Tits_elt:(0,theta))*\exp(2\pi i * -v)
= Tits_elt:(rho_check*(1-theta)/2-v*theta,inverse(theta))
also defined in basic.at, combinatorics.at, ratmat.at, parameters.at, affine.at, cyclotomic.at, Gaussian_elim.at, cyclotomic_Gaussian_elim.at, lazy_lists.at
lift 3 overloads
lift (WeylElt w) = Tits_eltcanonical lift of Weyl group element, assumed reduced, to Tits group
lift (mat delta, WeylElt w) = Tits_eltcanonical lift of Weyl group element to \delta-twisted Tits group
lift (RealForm G, WeylElt w) = Tits_eltalso defined in hash.at, center.at, nilpotent_orbits.at, disconnected.at
^
^ (Tits_elt !xi, int n) = Tits_eltTits element raised to an integer power
also defined in basic.at, ratmat.at, cyclotomic.at, polynomial.at, sparse.at, lazy_lists.at
order
order (Tits_elt xi) = intthis only works if the torus part is of order 2 (in the ajdoint group?)
also defined in basic.at, all_finite_order.at, cyclotomic.at, extended.at
Generated from atlas-scripts at commit 648506c (2026-10-13).