Documentation contents

Script File

special_rep.at

Source
atlas-scripts/special_rep.at (278 lines)
Definitions
18
Loads
Loaded by
associated_variety_annihilator.at

Definitions in source order

fig_verbose

L6fig_verbose = false
W-rep sigma -> special W-rep sigma_s
L7
1) sigma =Springer(O,chi) -> Springer(O_s) where O is in the special piece of O_s

2) different algorithm (that doesn't require Springer(O,chi), which we don't currently have)

Theorem (Lusztig).

1a) Suppose L is a Levi in G, and CL is a left cell of W(L). Then TGInd(CL) is a left cell for W.

b) Suppose C is a left cell in W. Then C\otimes sgn is also a left cell in W.

c) If W \ne 1, then for any left cell C in W, there is a proper L and a left cell CL in L so that
  EITHER TGInd(CL) = C, OR TGIND(CL\otimes sgn) = C\otimes sgn.

*********
So here is the algorithm for finding the special W-rep sigma_s attached to sigma.

-1) if sigma is special return sigma (this step isn't necessary but speeds up the algorithm)
0)  If W is trivial, then sigma_s = sigma = trivial. Assume W not trivial.
1)  Try to find a proper Levi L and a W(L)-rep sigmaL so that sigma is contained in TGInd(sigmaL);
    if you succeed, then sigma_s = TFInd(sigmaL_s) = TGInd(sigmaL_s).
2)  If you fail, replace sigma by sigmaSgn = sigma\otimes sgn. Step 1) is guaranteed to succeed for sigmaSgn, giving sigmaSgn_s.
3)  The dual special orbit to sigmaSgn_s (found by the duality algorithm) has Springer rep sigma_s.

{note on 3:  sigma -> sigmaSgn -> sigmaSgn_s -> orbit_sgn -> dual(orbit_sgn) -> sigma_s
except in exceptional cases in E7/E8: sigma_s=sigmaSgn_s\otimes sgn}
L8
given G, tables=all_levi_Springer_tables(G), int char_G
the algorithm produces
[(L_n,table_n,char_n),...(L_1,table_1,char_1),(G,0,char_G)
where each table_j,char_j is an integer
start with tables[table_n].characters[char_n], this is special
j-induction takes you
L37

find_induced_generic

L47find_induced_generic([SpringerTable] levi_tables, int index_table_M , int index_char_M) = (bool,([SpringerTable],int,int))
assume generic degrees have been computed for all levis
index of table in list
index of character in table_M
(success/failure),[tables], index_table_L, index_char_L

special_geck_data 3 overloads

L98special_geck_data([SpringerTable] levi_springer_tables, int index_table_G, (int index_char_G,bool tensor_sgn)) = ([SpringerTable],[(RootDatum,int,(int,bool))])
assume generic degrees have been computed for all levis
algorithm sketched above: compute (L,sigma_L_s), then sigma_s= ind(sigma_L_s) (selected by both fake and generic degree)
this is an internal function
([tables],(L,index_table_L,(index_char_L,bool_tensor_sgn))
L136special_geck_data([SpringerTable] levi_springer_tables, int index_table_G,int index_char_G) = ([SpringerTable],[(RootDatum,int,(int,bool))])
special case: (index_char,true)
([tables],(L,index_table_L,(index_char_L,bool_tensor_sgn))
L141special_geck_data([SpringerTable] levi_springer_tables,int index_char_G) = ([SpringerTable],[(RootDatum,int,(int,bool))])
special case: index_table_G=0
([tables],(L,index_table_L,(index_char_L,bool_tensor_sgn)))

collapse

L150collapse([SpringerTable] tables, [(RootDatum,int,(int,bool))] triples) = (RootDatum,int,(int,bool))
given chain
(L_1,char_1,bool_1) -> (L_2,char_2,bool_2) -> ...
inductive induce from char_i [times sign] W(L_i) -> W(L_{i+1})
sign term is included iff bool is true

to_special_geck_long 3 overloads

L188to_special_geck_long([SpringerTable] levi_springer_tables, int index_table_G, (int index_char_G,bool tensor_sign)) = (int,RootDatum,int,int,int)
([table],index_table_G,(char,bool)) -> (i,L,j,k,s):
[table]: list of Springer tables of all Levis of G
i: index of Springer table st_L of L in [tables]
L=Levi subgroup
j=index of table of target group H (often j=0,H=G)
k=index of character in st_L.ct
s=index of *special* character of H
L205to_special_geck_long([SpringerTable] levi_springer_tables, int index_table_G,int index_char_G) = (int,RootDatum,int,int,int)
assume bool=true
L209to_special_geck_long([SpringerTable] levi_springer_tables, int index_char_G) = (int,RootDatum,int,int,int)
assume bool=true, index_table_G=0

to_special_geck 2 overloads

L213to_special_geck([SpringerTable] levi_springer_tables, int index_table_G,int index_char_G) = int
just return index s of special of H
L217to_special_geck([SpringerTable] levi_springer_tables, int index_char_G) = int
assume index_table_G=0,just return index s of special of G

also in this file at line 246

test_special_geck

L220test_special_geck([SpringerTable] tables) = void

to_special

L234to_special(RootDatum G) = (int->int)

to_special_geck

L246to_special_geck(RootDatum G,int i) = int

also in this file at line 213, line 217

test_special_maps 3 overloads

L248test_special_maps(RootDatum G) = bool
L260test_special_maps([RootDatum] groups) = [bool]
L264test_special_maps()

induce

L274induce([SpringerTable] tables, int table_L, int table_G,int char_L) = [int]
for convenience

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