atlas Library · Script File
W_K.at
full Weyl group W_K of disconnected maximal compact subgroup
throughout x must be in distinguished fiber, and make 2rho_c G-dominant
See khatHowe: Vogan, Branching to a Maximal Compact Subgroup
(Howe conference volume), Proposition 4.2 x defines K,K_0
T_K:=(H^delta) = "small Cartan subgroup" of (disconnected) K
T_{K_0}:=(H^delta)_0 = Cartan subgroup of K_0
T_{K_0}\subset T_K\subset H
X^*(H) -> X^*(T_K) -> X^*(T_{K_0})
X^*(H)=X^* --> X^*(T_K)=X^*/(1-delta)X^* --> X^*(T_{K_0})=X^*/(X^*)^{-delta}
W(K,H^delta)=R(K)_dom \ltimes W(K_0,T_{K_0})
L(2rho_c) is of type A_1^r, with weyl group W_c^\perp
R(K)_dom=W(K,H^delta)\cap W_c^perp (Proposition 4.4)Definitions in source order
lift_action
L34
lift_action (WeylElt w, KGBElt x) = WeylEltgiven G,x in distinguished fiber, K_0=K_0(x),
Weyl group element w for W(K_0,H_{K_0})
lift this to an element of W(G,H)
should satisfy:
P*lift_action(x,w)=w_matrix(w)*P
where P is projection X^*(H)->X^*(H_{K_0})
need this to define equality of K-highest weights (see below)
lift_action(x,w) assumes x is in the distinguished fiber, and
w is a WeylElt for K_0(x) { only its Weyl word is used, not its root datum }
factor_action
L58
factor_action (KGBElt x,WeylElt w) = matgiven G,x in distinguished fiber, K_0=K_0(x), Weyl group element w for W(K,H),
w acts on X^*(H)
w factors to an action on X^*(T_K)=X^*(H)/X^*(H)^{-delta}
algorithm:
set inj = cocharacter_lattice_K(x) { isomorphism (X_*(T_K)->X_*(T)^\delta) }
set proj=left_inverse(inj) {NOT projection_to_K_matrix(x)}
w -> proj*matrix(w)*inj
small_Levi
L66
small_Levi (KGBElt x) = RealFormthis is the small Levi factor related to disconnectedness of K See khatHowe Proposition 4.4 x must be in distinguished fiber, and make 2rho_c G-dominant
small_Levi_coroots_K
L82
small_Levi_coroots_K (KGBElt x) = matutility function, a coroot beta^\vee of L=small_Levi(x) is in X_*(H)^delta, which is the image of X_*(T_K) \hookrightarrow X_*(H) what matters is <\beta^vee,\mu> where \mu\in X^*(T_K) (this is how P-positive is defined) so \beta^vee is viewed X_*(T_K) coordinates can be surprising (negative), so it is helpful to see these coroots as
coroots of small Levi as elements of X_*(T_K)
nice_choices_x
L87
nice_choices_x (RealForm G) = [KGBElt]all choices of x in distinguished fiber making 2rho_c dominant
nice_choice_x
L90
nice_choice_x (RealForm G) = KGBEltW_c_perp
L94
W_c_perp(KGBElt x) = [WeylElt]W_c_perp, see khatHowe Propsition 4.4
requirement: x makes 2rho_c G-dominant
convert
L98
convert (WeylElt w,RootDatum rd_G) = WeylEltconvert |WeylElt| for Levi to one for full |G|
for |rd_G|
also defined in nilpotent_orbits.at
R_K_dom
L110
R_K_dom (KGBElt x) = [WeylElt]R_K_dom is W(K,T_K)\cap W_c_perp
W(K,T_K)=R_K_dom \ltimes W(K_0,T_{K_0}) (KHatHowe Proposition 4.2)
Note: W(K,T_K)\simeq W(G,H) (KHatHowe after Definition 4.1)
so R_K_dom is given as list of elements of W(G,H)
each of which is a product of (commuting) reflections from W_c_perp
See KHatHow Proposition 4.4 (3)
requirement: x makes 2rho_c G-dominant
these are elements of W(G,H)
W_K(x)=(W_K(K_0,T_{K_0}), R_K_dom(x))L114W_K
L117
W_K (KGBElt x) = (RootDatum,[WeylElt])requirement: x makes 2rho_c G-dominant
move_weight
L119
move_weight (KHighestWeight hw,KGBElt y) = KHighestWeightR_K_dom_mu_orbit
L125
R_K_dom_mu_orbit (KHighestWeight hw) = [KHighestWeight]first replace (x,mu) with an equivalent ("nice") one such that x makes
2rho_c G-dominant
test if mu\in X^*(T_K) is P-positive (khatHowe page 19)
for each w=w_A in R_K_dom(x), <mu,\sum_{i\in A}\beta^\vee_i> \ge 0
mu is actually in X^*, viewed modulo (1-delta)X^*
[ NB: since mu\in X^*(T_K), \beta^vee\in X_*(H), need to replace
beta^vee with left_inverse(injection_from_K_matrix)(beta^vee) no]L149P_positive_test_coweight
L161
P_positive_test_coweight (KGBElt x,WeylElt S) = vecthe weight \sum\beta_k^\vee of khatHowe Proposition 4.4(5) S is an element of R_K_dom\subset W(G,H) beta^\vee\in X_* is a coroot for G (not for K_0)
P_positive_test_coweights
L170
P_positive_test_coweights (KGBElt x) = [vec]utility function
is_P_positive
L174
is_P_positive (KGBElt x,vec mu,[WeylElt] S) = boolS is an element of R_K_dom \subset W(G,H)
make_strongly_dominant
L186
make_strongly_dominant (KGBElt x,vec mu) = ((KGBElt,vec),WeylElt,WeylElt,bool)mu is in X^*, viewed as element of X^*(T_{K})=X^*/(1-delta)X^*
apply w in W(K_0,T_{K_0}) to make it K_0-dominant
then apply R_K_dom to make it P-positive
[when applying R_K_dom, these are elements of W(K,H) NO
use lift_action to get the action on X^* NO]
x must be in distinguished fiber, and make 2rho_c G-dominant
also defined in K_highest_weights.at
R_K_dom_mu
L222
R_K_dom_mu (KHighestWeight hw) = [WeylElt]mu is in X^*(T_{K_0})
make it K_0-dominant, and compute stabilizer in R_K_dom
requirement: x makes 2rho_c G-dominant
for w in R_K_dom do if lift_action(x,w)*mu_1=mu_1 then result#:=w fi od;L228
Generated from atlas-scripts at commit 648506c (2026-10-13).
Commented-out code, lines 207–216 (9 lines)
set make_strongly_dominant(KGBElt x,ratvec mu)=(ratvec,mat): let (mu_dom,w_1,w_2,done)= make_strongly_dominant_long(x,mu) then m_1=assert(@:done=true,"make_strongly_dominant failed"); lift_action(x,w_1) then {()=prints("lifted") then} m_2=w_matrix(w_2) then {()=prints("m_2=",m_2) in} (mu_dom,m_1*m_2)