Script File
special_rep.at
Definitions in source order
fig_verbose
L6
fig_verbose = falseW-rep sigma -> special W-rep sigma_sL7
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}L8given 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 youL37
find_induced_generic
L47
find_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
L98
special_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))
L136
special_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))
L141
special_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
L150
collapse([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
L188
to_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
L205
to_special_geck_long([SpringerTable] levi_springer_tables, int index_table_G,int index_char_G) = (int,RootDatum,int,int,int)assume bool=true
L209
to_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
L213
to_special_geck([SpringerTable] levi_springer_tables, int index_table_G,int index_char_G) = intjust return index s of special of H
L217
to_special_geck([SpringerTable] levi_springer_tables, int index_char_G) = intassume index_table_G=0,just return index s of special of G
also in this file at line 246
test_special_geck
L220
test_special_geck([SpringerTable] tables) = voidto_special
L234
to_special(RootDatum G) = (int->int)to_special_geck
L246
to_special_geck(RootDatum G,int i) = inttest_special_maps 3 overloads
L248
test_special_maps(RootDatum G) = boolL260
test_special_maps([RootDatum] groups) = [bool]L264
test_special_maps()induce
L274
induce([SpringerTable] tables, int table_L, int table_G,int char_L) = [int]for convenience
Generated from atlas-scripts at commit 7e1b958 (2026-09-17).