Documentation contents

atlas Library · Script File

weyl_character_formula.at

! Weyl character formula computed at elements of finite order

Suppose G is a connected, complex reductive group, or a connected
compact group. An irreducible finite dimensional representation (pi,V)
of G is determined by its highest weight. The Weyl character formula
computes the trace of pi(t), for t a (semisimple) element of G, as a
quotient. If t is regular (the identity component of its centralizer
is a torus) both numerator and denominator are nonzero.

If t is singular both the numerator and denominator can vanish, in
which case a version of L'Hopital's rule is needed. For example when
t=1 this gives the Weyl dimension formula.

There is a version of the Weyl character formula, which can be
directly evaluated on any element t, which involves the Weyl dimension
formula on the centralizer of t. This is the formula we have
implemented. If t has order n then trace(pi(t)) is an algebraic
integer in the cyclotomic field of n^th roots of 1, i.e. an integral
linear combination of roots of 1.

See https://www2.bc.edu/mark-reeder/WeylChar.pdf Proposition 6.1 !
Source
atlas-scripts/weyl_character_formula.at (213 lines)
Definitions
23
Loads
Loaded by
finite_dimensional_signature.at

Definitions in source order

verbose_trace

L30verbose_trace = false
set true for more output

find_ratvec_mod_vec

L33find_ratvec_mod_vec ([ratvec] v, ratvec w) = int
see if w is equivalent to v mod Z^n for some v in list

reduce_ratvecs_mod_lattice

L37reduce_ratvecs_mod_lattice ([ratvec] S) = [ratvec]
keep coset representatives of list of ratvecs mod Z^n

W_orbit_torus_element

L44W_orbit_torus_element(RootDatum rd,ratvec v) = [ratvec]
action is by dual(rd) since v is in X_*(T)_Q

centralizer

L48centralizer(RootDatum rd,ratvec cowt) = RootDatum
the dual notion to |integrality_datum@(RootDatum,ratvec)|

also defined in good_W_representatives.at, nilpotent_centralizer.at, K_highest_weights.at, subgroups.at, conjugate.at, cyclotomic_Lie_algebra.at, bracket.at

QmodZ_order

L52QmodZ_order(ratvec v) = int
order of element of Q/Z.

eval_char_T

L56eval_char_T(vec lambda, ratvec v,CyclotomicField F) = CyclotomicFieldElement
evaluate character (in Z^n) of T on t\in T of finite order,
giving result in the given cyclotomic field

weyl_denominator_quotient

L60weyl_denominator_quotient(RootDatum rd, ratvec v,CyclotomicField F) = CyclotomicFieldElement
product of $1-\exp(-alpha)(t)$ over all posroots $\alpha$ making it nonzero.

trace_semisimple_simply_connected

L71trace_semisimple_simply_connected( RootDatum rd, vec lambda,ratvec v,CyclotomicField F) = CyclotomicFieldElement
Weyl character formula for finite dimensional with extremal weight lambda
at t=exp_1(v), in the semisimple simply connected case.

trace

L99trace (RootDatum rd, vec lambda, ratvec t, CyclotomicField F) = CyclotomicFieldElement
Weyl character formula in general case is obtained by reduction to
the semisimple simply connected case
Weyl character formula for finite dimensional with extremal weight
lambda exp_1(v).

also in this file at line 133, line 135, line 137, line 184; also defined in basic.at

trace_long

L110trace_long (RootDatum rd, vec lambda,ratvec v,CyclotomicField F) = (CyclotomicFieldElement,[CyclotomicFieldElement])
mainly for debugging;
same as previous, also returning an array of terms from the computation

also in this file at line 140, line 143

trace 3 overloads

L133trace (RootDatum rd, vec lambda,ratvec v) = CyclotomicFieldElement
variants of trace functions
L135trace (vec lambda,(RootDatum rd,ratvec v)) = CyclotomicFieldElement
L137trace(Param p, ratvec v) = CyclotomicFieldElement

also in this file at line 99, line 184; also defined in basic.at

trace_long 2 overloads

L140trace_long (RootDatum rd, vec lambda,ratvec v) = (CyclotomicFieldElement,[CyclotomicFieldElement])
L143trace_long (vec lambda,(RootDatum rd,ratvec v)) = (CyclotomicFieldElement,[CyclotomicFieldElement])

also in this file at line 110

special case of Weyl character formula: x^2\in Z (strong real form)
used for computing signatures of Hermitian forms
returns (rat theta,int k) representing Trace(pi(x))=e^{2\pi i theta}*k
since x^2\in Z, \pi(x)=\zeta^{1/2}diag(\pm 1,...,\pm 1) where
zeta^{1/2} is a square root of the central character evaluated as x^2
zeta=e^{\pi i\theta}
L147

trace_strong_real 2 overloads

L157trace_strong_real (RootDatum rd, ratvec lambda,ratvec v) = (rat,int)
Weyl character formula for highest weight lambda evaluated on an element x
in T with x^2 in Z.
L176trace_strong_real (Param p,ratvec v) = (rat,int)
Weyl character formula for finite dimensional p evaluated on an element x
in T with x^2 in Z.

trace

L184trace ([vec] weights,ratvec v) = CyclotomicFieldElement
Weyl character formula: given set of weights, add them up at exp(2i\pi t)
input should be the set of weights (with multiplicities) of a representation
evaluate sum of weights at t.

also in this file at line 99, line 133, line 135, line 137; also defined in basic.at

torus_factor_x

L193torus_factor_x (RealForm G) = (RootDatum,ratvec)
torus factor of strong real form of x.

trace_report 3 overloads

L197trace_report (RealForm G, vec lambda, ratvec t) = void
output of Weyl character formula.
L202trace_report (Param p,ratvec t) = void
L206trace_report (RealForm G, int height_bound, ratvec t) = void
run over all finite dimensionals up to height bound.

also defined in finite_dimensional_signature.at

Generated from atlas-scripts at commit 648506c (2026-10-13).