Documentation contents

Script File

complex.at

Source
atlas-scripts/complex.at (235 lines)
Definitions
40
Loads
Loaded by
none of the other all.at files

Definitions in source order

left

L10left (vec v) = vec
a few vector manipulations

also in this file at line 12

left

L12left (ratvec v) = ratvec

also in this file at line 10

right

L13right (ratvec v) = ratvec

also in this file at line 11

concatenate

L15concatenate = ##@(ratvec,ratvec)
concatenate as lists of rationals

up_right_corner

L23up_right_corner (mat M) = mat
upper right-hand corner of square matrix
application: in a complex group, theta is of the form
(0    w)
(w^-1 0)
upper_right_corner(theta) gives the matrix of w

up_left_corner

L27up_left_corner (mat M) = mat
Testing if a group is (weak,strictly) complex
L33

is_complex

L79is_complex(InnerClass ic) = bool
Suppose G is a RootDatum, and \theta is a algebraic involution of G
defining a real form G(R). We say G is a "complex group" if the root
system R of G is "complex": meaning $R\simeq R_1\times R_1$, with \delta
exchanging the two factors.  Equivalently:
<\alpha^vee,\delta(\alpha)> = 0 for all (simple) roots alpha

Caution: This is slightly weaker than: G\simeq G_1\times G_1 with
\delta switching factors. For example SL(2)xSL(2)/<-I,-I>, delta acts
by switching factors <- SO(3,1); this is disconnected.

is_complex@RealForm tests the condition: <alpha^vee,delta(alpha)> = 0

Question: how do we check the stronger condition: G(R) is a connected,
complex group. (This allows Spin(3,1)=SL(2,C) and PSO(3,1)=PSL(2,C),
but not SO(3,1)\simeq PSL(2,C)\times Z_2 (direct product)

Answer: G^\theta\otimes C\simeq G
In the usual notation:
G=G_1\times G_1, \theta(g,h)=(h,g)
G^\theta=G_1-diagonal,
(G^\theta)\otimes C=G_1\times G_1=G

We call this condition: is_strictly_complex

How to test this:

(G^\theta)_0 =K_0(G)  (identity component)

Claim: (G,\theta) is complex <=>
a) G(R), equivalently K=G^\theta, is connected
b) complexification(K_0(G))\simeq G

I believe we can replace b) with

b') complexification(K_0(G)) is locally isomorphic to G

Furthermore this is probably equivalent to:

i)  G.is_complex
ii) G.components_rank=0

Probably we won't use is_strictly_complex much, so
leaving this here

also defined in basic.at, sub_cells.at

is_strictly_complex

L83is_strictly_complex(RealForm G) = bool

also defined in sub_cells.at

left_w

L89left_w (KGBElt x) = mat
assumes inner_class(x) is complex

mu_C

L96mu_C (Param p) = vec
extremal weight of LKT of parameter p of G complex
formula: lambda_L+w*lambda_R
write mu_C to distinguish from mu in hermitian.at

nu_C

L103nu_C (Param p) = ratvec
A-parameter of parameter of G complex
formula: nu_L-w*nu_R

gamma_L

L107gamma_L (Param p) = ratvec

gamma_R

L108gamma_R (Param p) = ratvec

parameter_g

L113parameter_g (RealForm G,ratvec gamma_L, ratvec gamma_R) = Param
define a parameter of G complex by (gamma_L,gamma_R)
assumption: gamma_L+gamma_R in X^*

g_parameter

L121g_parameter(Param p)

parameter_m

L124parameter_m(RealForm G, vec mu, ratvec nu) = Param
define a parameter of G complex by (mu,nu)

m_parameter

L128m_parameter(Param p) = (RealForm,vec,ratvec)

K_int

L132K_int(RealForm G,ratvec gamma) = RealForm
-------------------------------------------------------------------
get a copy of G_int from (GxG)(gamma)=G(gamma)xG(gamma)
G is a complex group, viewed as a real group it has rank n=2m
 W(G): acting on 2m-vectors = W_left(G) x W_right(G)
 W_left(G): acting on m-vectors
 similarly:
 gamma is an m-vector, gamma##gamma is an infinitesimal character for G

DV: THIS NEEDS TO BE gamma##(-gamma); note condition earlier gammaL+gammaR
 in X^*.

W_int(G,gamma##gamma)=Weyl group of integrality datum =W_int(G,gamma##gamma)_left x W_int(G,gamma##gamma)_right
 W_left(G,gamma)=W_int(G,gamma##gamma): acting on m-vectors
L137

left_G 2 overloads

L150left_G(RealForm G,ratvec gamma)
L151left_G(RealForm G)

left_rho

L153left_rho(RealForm G) = ratvec

left_W 2 overloads

L156left_W(RealForm G,ratvec gamma)
L157left_W(RealForm G)

diag_W

L161diag_W(RealForm G,WeylElt w)
G complex, WxW, left_W(G)=W,
embed left_W(G) diagonally

embed_left

L164embed_left(RealForm G,WeylElt w)
G has rank 2m
gamma is an m-ratvec
w is an element of W_left(G,gamma)
L166

parameter_w

L177parameter_w(RealForm G,ratvec gamma, WeylElt w) = Param
triple: (G,gamma, w)
parameter_w(G,gamma,w)=Param:
w_parameter(Param p)=(RealForm,rarvec,WeylElt)
parameter_w(w_parameter(p))=p
w_parameter(parameter_w(G,gamma,w)=(G,gamma,w)

parameter1_w

L181parameter1_w(RealForm G, ratvec gamma, WeylElt w) = Param
this one should work for _any_ gamma, and send 1_W to spherical parameter

w_parameter

L185w_parameter(Param p) = (RealForm,ratvec,WeylElt)
this is meant to recover w from parameter_w(G,gamma,w)

w_parameter1

L190w_parameter1(Param p) = (RealForm,ratvec,WeylElt)
this is meant to recover w from parameter1_w(G,gamma,w)

w

L194w(Param p) = WeylElt

cell_as_w

L196cell_as_w([Param] block,WCell cell) = [WeylElt]

view_complex

L201view_complex([Param] params) = void
viewing block for a complex group as group-algebra of W
for applications to computing cells for a real group
L213

gp_alg_elt

L216gp_alg_elt(ParamPol P) = [(Split,WeylElt)]

gp_alg_elt1

L220gp_alg_elt1(ParamPol P) = [(Split,WeylElt)]
more or less differs from gp_alg_elt by mult by long element (on some side?)

*

L223*([(Split,WeylElt)] x,Param p) = ParamPol

also defined in basic.at, extParamPol.at, modules.at, hodge_tensor.at, tits_centralizer.at, stable.at

inverses

L226inverses([WeylElt] cell) = [WeylElt]

intersect

L228intersect([WeylElt] a,[WeylElt] b) = [WeylElt]

self_intersect

L232self_intersect([WeylElt] a) = [WeylElt]

diag

L234diag([[WeylElt]] cells) = [[WeylElt]]
diagonal, one must presume

Generated from atlas-scripts at commit 7e1b958 (2026-09-17).