Documentation contents

atlas Library · Script File

K.at

! Embedding of the complex group K defined by compact imaginary root system

 $T_{K_0}=(H^{\delta})_0 =$ Cartan subgroup of $K_0$
 $T_{K_0}\subset T_K=H^{\delta} \subset H$
 $T_{K_0} is a torus in $T_K$ abelian (possibly disconnected)
 $X^*(T_{K_0})= X^*/(X^*)^{-\delta}$
 $X^*(T_K)    = X^*/(1-\delta)X^* \twoheadrightarrow X^*(T_{K_0})$
 (restriction map is surjective)
  see W_K.at

  K_0=identity component of K, with Cartan subgroup T_K0
  B=basis of X_*(T_K0) (as columns) = cocharacter lattice for (K_0,T_K0)
  returns a matrix B with rank(K_0) columns, rank(ic) rows
  columns are a basis of the +1 left-eigenspace delta

  This matrix $B$ satisfies $^\delta*B=B$
  left multiplication by $^B$ is
      projection $X^*(H)  -> X^*(T_{K_0}) = X^*(H)/X^*(H)^{-\delta}$
  left multiplication by  $B$ is
      injection  $X_*(T_{K_0})-> X_*(H)$   [$^\delta*v=v$ for $v$ in image]
!
Source
atlas-scripts/K.at (264 lines)
Definitions
45
Loads
Loaded by
complex.at sub_cells.at induction.at W_K.at K_highest_weights.at nilpotent_orbits.at affine.at

Definitions in source order

KHighestWeight type

L27
set_type KHighestWeight = (void .,KGBElt x, vec mu)

Fields: x, mu

k_highest_weight

L29k_highest_weight (KGBElt x, vec mu) = KHighestWeight
Three ways of parametrizing K-types:

1. KType: built-in with components |KGBElt x| and |vec lambda_rho| (difference)
   These may or may not be any of standard, dominant, zero and semi-final,
   but thye are always equivalent to a $\Z$-linear combination of final K types
   which means dominant (therefore standard) nonzero and semi-final; when
   contributed to a KTypePol this expansion is automatically performed.
   The set of final K-types is in bijection with K-hat
   With |lambda=lambda_rho+rho(G)| the mentioned attributes are:
   standard: <alpha_v,lambda> >= 0 for every positive imaginary coroot alpha_v
   dominnat: <alpha_v,lambda> >= 0 for every positive coroot alpha_v
   nonzero:  <alpha_v,lambda> != 0
                         for every compact simply-imaginary coroot alpha_v
   semi-final: <alpha_v,lambda> is odd for every simply-real coroot alpha_v
       equivalently <alpha_v,lambda-rho_real> is even for every real coroot

2. KHighestWeight: ((),KGBElt x_K,vec mu)
   Here |x_K| lies in distinguished fiber, and defines K
   Recall that T_K=H^\delta, which is abelian subgroup of K_#=T_K.K_0
   (T_K can be disconnected).
   Also mu\in X^* is represents an element of X^*/(1-delta)X^*=X^*(T_K)
   and is a highest weight for K_#
   So equivalence includes modding out mu by (1-delta)X^*, see function = below

3. K0_Param: ordinary parameter (x_K,lambda,nu=0) for
   irreducible finite dimensional representation of K_0
   its highest weight is a dominant weight of T_K0
L31

matrices related to T_K0\subset H L61

cocharacter_lattice_K

L64cocharacter_lattice_K (InnerClass ic) = mat
columns are coweights
id_mat in equal rank case

also in this file at line 73

is_fundamental_Cartan

L69is_fundamental_Cartan (KGBElt x)
condition testing that x is on the fundamental Cartan, not necessarily in the
distinguished fiber

cocharacter_lattice_K

L73cocharacter_lattice_K (KGBElt x) = mat
in the following function x is required to be on the fundamental Cartan

also in this file at line 64

projection_to_K_matrix 2 overloads

L80projection_to_K_matrix (InnerClass ic) = mat
matrix of projection X^*(H)-> X^*(T_K0)=X^*(H)/X^*(H)^{-theta_x}
project modulo the -1 eigenspace of the distinguished involution (or theta_x)
L81projection_to_K_matrix (KGBElt x) = mat

project_K 4 overloads

L87project_K (InnerClass ic,vec v) = vec
projection function X^*(H) -> X^*(T_K0)
this accepts a rational vector in X^*_\Q, provided its image is integral
avoid transpose in projection_to_K_matrixI(ic)*v, but morally it is that
L88project_K (KGBElt x,vec v) = vec
L89project_K (InnerClass ic,ratvec v) = vec
L91project_K (KGBElt x,ratvec v) = vec

injection_from_K_matrix 2 overloads

L97injection_from_K_matrix = (InnerClass->mat)
matrix of injection X_*(T_K0)->X_*(H); image is the saturated sublattice
X_*(H)^theta
L98injection_from_K_matrix = (KGBElt->mat)

inject_K 2 overloads

L101inject_K (InnerClass ic,ratvec v) = vec
injection function X_*(T_K0) -> X_*(H))
L103inject_K (KGBElt x,ratvec v) = vec

coinject_from_K 2 overloads

L117coinject_from_K (InnerClass ic,ratvec v) = ratvec
injection X^*(T_K0) -> X^*(H)^delta_Q   (denominator can be 2)
B=cocharacter_lattice_K(x)
left mult by ^B is surjection X^*(H) --> X^*(T_K0)
restriction to X^*(H)^delta is _not_ necessarily surjective,
for example when T(R)=complex torus
rightinverse(^B): X^*(T_K0)-> X^*(H), not necessarily X^*(H)^delta
v -> w=(1+delta)/2*rightinverse(B)*v is in X^*(H)^delta\otimes 1/2,
satisfies ^B*w=v
application: map (\frak t_K)^* \hookrightarrow \frak t^*, used in the
Vogan algorithm, see project.at
L119coinject_from_K (KGBElt x,ratvec v) = ratvec

rank_K

L122rank_K (InnerClass ic) = int

also in this file at line 181

G_K_roots_and_coroots_raw

L140G_K_roots_and_coroots_raw (KGBElt x) = ((mat,mat),(mat,mat))
G_K_roots_and_coroots_raw
Input: x in distinguished fiber,
  so theta=delta permutes positive complex roots
Output: ((G_K_roots,G_K_coroots),(injection matrix,pull_back matrix)

G_K_roots: posroots of K as elements of X^*(H) (coordinates of G, not K)
  from all compact imaginary posroots, and one of each complex theta-orbit
G_K_coroots: poscoroots of K as elements of X_*(H) (and delta-fixed)
   from compact imaginary poscoroots
   and for each complex theta-orbit, the coweight c.(alpha^v)(1+theta)
     c=1 if  <delta(alpha),alpha^\vee>=0
     c=2 if  otherwise (<,>=\pm 1)
injection matrix: X_*(T_K0) ->  X_*(H)^{^delta} (isomorphism)
pull_back matrix: X_*(H)^{^delta} -> X_*(T_K0)  (isomorphism)

G_K_roots_and_coroots

L177G_K_roots_and_coroots (KGBElt x) = (mat,mat)
apply projection: X^*(H) -> X^*(T_K0) to roots (projection=^inj)
pull_back:  X_*(T_K0) -> X_*(H) (isomorphism to X_*(H)^delta

rank_K

L181rank_K (RealForm G) = int

also in this file at line 122

K_root_datum

L184K_root_datum (KGBElt x) = RootDatum
here x is required to be in the distinguished fiber:

K_0 2 overloads

L187K_0 (KGBElt x) = RealForm
L190K_0 (RealForm G) = RealForm

also in this file at line 227

rho_K 2 overloads

L193rho_K (KGBElt x) = ratvec
here x is required to bein the distinguished fiber:
in X^*(T_K0)
L194rho_K (RealForm G) = ratvec

rho_c 2 overloads

L196rho_c (KGBElt x) = ratvec
as an element of (X^*(H)^delta_Q
L198rho_c (RealForm G) = ratvec

tworho_c 2 overloads

L200tworho_c(KGBElt x) = ratvec
not necessarily a vec
L201tworho_c(RealForm G) = ratvec
conversion from restriction to K format to Param
L204

convert_K_type 2 overloads

L214convert_K_type (RealForm G,vec two_lambda, vec torus_bits, int cartan) = Param
Fokko outputs a K-type as two_lambda@torus_bits#cartan_class
this defines a final standard limit parameter p=(x,lambda) where
torus_factor(x)=base_grading(G)+torus_bits, and involution(x) is the
canonical involution of the Cartan_class
currently Fokko commands Ktype_mat, branch and Ktypeform print K-types in
format [ 2, 2,-2, 2 ]@(0,0,1,1)#4; this can be made into a Param value by
calling the function below as convert_K_type(G,[2,2,-2,2],[0,0,1,1],4)
L221convert_K_type (RealForm G,(vec two_lambda, vec torus_bits, int cartan)) = Param
another version where the K-type specific part is grouped into a 3-tuple

real_form

L225real_form (KHighestWeight hw) = RealForm

also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, nilpotent_orbits.at, hodgeParamLaurentPol.at, hodgeParamPol.at

root_datum

L226root_datum (KHighestWeight hw) = RootDatum

also defined in basic.at, W_reps.at, K_Nilpotent.at, sommers.at, parabolics.at, nilpotent_orbits.at, W_classes.at, extended_misc.at, character_tables.at, springer_tables.at, disconnected.at, cyclotomic_Lie_algebra.at, bracket.at, exceptional.at

K_0

L227K_0 (KHighestWeight hw) = RealForm

also in this file at line 187, line 190

parameter

L229parameter = param@KType
make this just an alias for K types

also defined in basic.at, L_packet.at, parameters.at, extended_misc.at

to_no_Cminus

L231to_no_Cminus = theta_stable@KType
alias for this built-in function

also defined in Weylgroup.at

length of highest weights L233

length of K-type with highest weight mu is <mu+2*rho_K,mu+2*rho_K>
this is used in the definition of lowest K-types
L235

length

L239length (KHighestWeight hw) = rat

also defined in Weylgroup.at, extended.at

K_norm

L243K_norm = height@KType
this is now built-in

also in this file at line 250, line 254; also defined in K_norm.at

K_norm(KType t) = int:
let mu = theta_plus_1_lambda(t) in
for alpha_v in poscoroots(root_datum(t.x)) do abs(alpha_v*mu) od.sum\2
L244

K_norm

L250K_norm (Param p) = int
although equal to built-in height@Param, we allow computing via K-type

also in this file at line 243, line 254; also defined in K_norm.at

K_norms

L253K_norms (KTypePol P) = [int]
K_norm of P is the max of K_norm(terms)

also defined in K_norm.at

K_norm

L254K_norm = (KTypePol->int)

also in this file at line 243, line 250; also defined in K_norm.at

leading_terms

L257leading_terms (KTypePol P) = KTypePol

also defined in K_norm.at

all_K_norms

L261all_K_norms = K_norms@KTypePol
no need to sort; already sorted

also defined in K_norm.at

sort_by_K_norm

L264sort_by_K_norm = ([KType] -> [KType])
sort [KType] by K_norm

also defined in K_norm.at

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