Documentation contents

Script File

four.at

Source
atlas-scripts/four.at (260 lines)
Definitions
19
Loads
Loaded by
none of the other all.at files

Definitions in source order

permute_character

L3permute_character(mat M,CharacterTable ct,[int] char) = [int]

four_inner_products

L5four_inner_products(RealForm G,CharacterTable ct_G,[int] char_G)

five_inner_products 2 overloads

L13five_inner_products(RealForm G,CharacterTable ct_G,[int] char_G)
L22five_inner_products(RealForm G,RealForm G_dual,CharacterTable ct_G,[int] char_G)

also in this file at line 42

five_inner_products_r

L32five_inner_products_r(RealForm G,RealForm G_dual,CharacterTable ct_G,[int] char_G)

also in this file at line 45

five_inner_products

L42five_inner_products(RealForm G,RealForm G_dual,CharacterTable ct_G,[[int]] chars)

also in this file at line 13, line 22

five_inner_products_r

L45five_inner_products_r(RealForm G,RealForm G_dual,CharacterTable ct_G,[[int]] chars)

also in this file at line 32

special_characters

L48special_characters(SpringerTable st) = [[int]]

show_big_table

L50show_big_table(RealForm G,RealForm G_dual,CharacterTable ct_G)

show_big_table_r

L62show_big_table_r(RealForm G,RealForm G_dual,CharacterTable ct_G)

also in this file at line 95

show_BXYI_tables

L74show_BXYI_tables (RealForm G, CharacterTable ct_G) = void

also in this file at line 93

show_X

L84show_X (RealForm G) = void

show_BXYI_tables

L93show_BXYI_tables (RealForm G)

also in this file at line 74

show_big_table_r

L95show_big_table_r(RealForm G,RealForm G_dual)

also in this file at line 62

test_inv_conj

L99test_inv_conj(RealForm G) = bool
Test whether the Weyl group representation on the twisted involutions is invariant
under tensoring with sign

make_vector 2 overloads

L103make_vector(Param p, [Param] list) = vec
L106make_vector(ParamPol P, [Param] list) = vec

block_action_matrix_std

L109block_action_matrix_std ([Param] bl, int s) = mat

block_action_matrix_irr

L114block_action_matrix_irr ([Param] bl, int s) = mat
Commented-out code, lines 118–260 (141 lines)
set show_four_inner_products_special(RealForm G,SpringerTable st_G,SpringerTable st_G_v)=
let tip=four_inner_products(G,st_G.ct,st_G.special_characters) then   {orbits indexed by special orbits in G}
other=four_inner_products(G,st_G.ct,lusztig_cells_characters_special(G,st_G,st_G_v))  {for each orbit mult((sum over Lusztig left cell),BXYI)} then
lusztig_cells=lusztig_cells(G,st_G,st_G_v) then
(indices,orbits)=st_G.special_orbits_indexed in
prints(new_line,"Table of inner products for G=", G,new_line,"#: number of special orbit O_v of G^v in list of all orbits",new_line,
"diag: diagram of orbit O_v",new_line,
"dim: dimension of special representation",new_line,
"deg: degree of special representation",new_line,
"bxyi: multiplicity of special in coherent continuation representations B,X,Y,I",new_line,
"BXYI: inner product of Lusztig left cell character with coherent continuation representations B,X,Y,I");
tabulate( ["#O^v","diag","dim","deg","gdeg","sigma","sigma*sgn","b","x","y","i", "B", "X","Y", "I"]#
 for i:#indices do let (a,b,bprime,c)=tip[i] then (d,e,eprime,f)=other[i] then
  j=indices[i] in
 [j.to_string,
  st_G.dual_map(st_G.special_orbits[i]).diagram.to_string,
  {st_G_v.orbits[j].diagram.to_string,}{wrong order}
  st_G.ct.dimension(lusztig_cells[i][0]).to_string,
  st_G.ct.degree(lusztig_cells[i][0]).to_string,
  if #st_G.degrees>0 then st_G.degrees[i].to_string else "" fi,
  lusztig_cells[i].to_string,
  (for a in lusztig_cells[i] do st_G.ct.tensor_sign_index(a) od).to_string,
  a.to_string,b.to_string,bprime.to_string,c.to_string, d.to_string,e.to_string,eprime.to_string,f.to_string] od);
  prints(new_line,"Springer table of G_^v:");show_reps(st_G_v);
  prints(new_line,"Springer table of G:");show_reps(st_G);
  prints(new_line,"Orbits for G:");show_long(st_G);
  prints(new_line,"lusztig cells for G:"); show_lusztig_cells(G,st_G,st_G_v);
  prints(new_line,"full decomposition of BXYI: ");show_big_table(G,st_G.ct)

set show_four_inner_products_special(RealForm G,RealForm G_dual,SpringerTable st_G,SpringerTable st_G_v)=
let tip=four_inner_products(G,G_dual,st_G.ct,st_G.special_characters) then   {orbits indexed by special orbits in G}
other=four_inner_products(G,G_dual,st_G.ct,lusztig_cells_characters_special(G,st_G,st_G_v))  {for each orbit mult((sum over Lusztig left cell),BXYI)} then
()=prints("tip: ", tip, new_line, "other: ", other) then
lusztig_cells=lusztig_cells(G,st_G,st_G_v) then
(indices,orbits)=st_G.special_orbits_indexed in
prints(new_line,"Table of inner products for G=", G,new_line,"#: number of special orbit O_v of G^v in list of all orbits",new_line,
"diag: diagram of orbit O_v",new_line,
"dim: dimension of special representation",new_line,
"deg: degree of special representation",new_line,
"bxyi: multiplicity of special in coherent continuation representations B,X,Y,I",new_line,
"BXYI: inner product of Lusztig left cell character with coherent continuation representations B,X,Y,I");
tabulate( ["#O^v","diag","dim","deg","gdeg","sigma","sigma*sgn","b","x","y","i", "B", "X","Y", "I"]#
 for i:#indices do let (a,b,bprime,c)=tip[i] then (d,e,eprime,f)=other[i] then
  j=indices[i] in
 [j.to_string,
  st_G.dual_map(st_G.special_orbits[i]).diagram.to_string,
  {st_G_v.orbits[j].diagram.to_string,}{wrong order}
  st_G.ct.dimension(lusztig_cells[i][0]).to_string,
  st_G.ct.degree(lusztig_cells[i][0]).to_string,
  if #st_G.degrees>0 then st_G.degrees[i].to_string else "" fi,
  lusztig_cells[i].to_string,
  (for a in lusztig_cells[i] do st_G.ct.tensor_sign_index(a) od).to_string,
  a.to_string,b.to_string,bprime.to_string,c.to_string, d.to_string,e.to_string,eprime.to_string,f.to_string] od);
  prints(new_line,"Springer table of G_^v:");show_reps(st_G_v);
  prints(new_line,"Springer table of G:");show_reps(st_G);
  prints(new_line,"Orbits for G:");show_long(st_G);
  prints(new_line,"lusztig cells for G:"); show_lusztig_cells(G,st_G,st_G_v);
  prints(new_line,"full decomposition of BXYI: ");show_big_table(G,st_G.ct)

set show_four_inner_products_special(RealForm G)=void:
let st_0=G.springer_table then
st=update_degrees(G,st_0) in
show_four_inner_products_special(G,st, G.dual.springer_table)

set show_four_inner_products_special(RealForm G,RealForm G_dual)=void:
let st_0=G.springer_table then
st=update_generic_degrees(st_0,G) in
show_four_inner_products_special(G,G_dual,st, G.dual.springer_table)



{
set g(RealForm G,CharacterTable ct_G,[Param] parameters)=g(G,ct_G,parameters,G.dual_special_orbits)

set g(RealForm G)=
g(G,G.character_table,all_parameters_gamma(G,rho(G)),G.dual_special_orbits)
}
{note st_G here not ct_G}
set show_lusztig_sommers_cells(RootDatum G,SpringerTable st_G,SpringerTable st_G_v,[ComplexNilpotent] dual_orbits)=void:
let ct_G=st_G.ct then
()=prints("O^v: orbit for dual",new_line,"M: (small) pseudo_levi",
new_line, "H_M: H for orbit in M",new_line,
"v: exp(2\pi iv) in center of M",new_line,
"L: centralizer of exp(2\pi iv)",new_line,
"j_L: index of W-representation sigma_L given by Lusztig algorithm",new_line,
"dim/deg: dimension/degree of this character",new_line,
"O_L: sigma_L=Springer(O_L) (blank if sigma_L is not a Springer representation)",
"j_S: index of W-representation given by Sommers algorithm",new_line,
"dim/deg: dimension/degree of this character",new_line,
"O_S: sigma_S=Springer(O_S) (blank if sigma_S is not a Springer representation",
"=: Lusztig and Sommers give same result") then
()=prints("G=", G.nice_format, new_line, "#orbits: ", #dual_orbits) in
tabulate(
["O^v","dim","i","M","H_M","v","L_v","O_L_v","j_L","dim","deg","O_L","j_S","dim","deg","O_S","="]#
##for O_v@counter in dual_orbits do
  let ()=prints("orbit ",counter,": ", O_v.root_datum.nice_format,
        " H=", O_v.H, " diagram=", O_v.diagram, " normalized diagram=", O_v.diagram_normalized) in
  let data=
  for (M_v,H_M_v,y) in component_representatives_plus(O_v) do
    let (j_L,j_S,O_L_v)=sigma_L_S(G,ct_G,st_G_v,O_v,M_v,H_M_v,y) in (M_v,H_M_v,O_L_v,y,j_L,j_S)
  od
  in
  for i:#data do
   let (M_v,H_M_v,O_L_v,y,j_L,j_S)=data[i] then
   sigma_L=ct_G.characters[j_L] then
   sigma_S=ct_G.characters[j_S] in
   [O_v.diagram.to_string+st_G_v.special_star(O_v),
    O_v.dim_nilpotent.to_string,
    i.to_string,
    M_v.nice_format,
    H_M_v.compact_ratvec,
    y.compact_ratvec,
    O_L_v.root_datum.nice_format,
    O_L_v.diagram.to_string,
    j_L.to_string,
    ct_G.dimension(j_L).to_string,
    ct_G.degrees[j_L].to_string,
    let (valid,orbit)=st_G.springer_inverse(j_L) in if valid then orbit.diagram.to_string+st_G.special_star(orbit) else "*" fi,
    j_S.to_string,
    ct_G.dimension(j_S).to_string,
    ct_G.degrees[j_S].to_string,
    let (valid,orbit)=st_G.springer_inverse(j_S) in if valid then orbit.diagram.to_string+st_G.special_star(orbit) else "*" fi,
    if j_L=j_S then "=" else "" fi
]
  od  {/for i:#data}
 od {for O_v})

set show_lusztig_sommers_cells(
 RootDatum G,SpringerTable st_G,SpringerTable st_G_v)=void:
  show_lusztig_sommers_cells(G,st_G,st_G_v,G.dual_orbits)

set show_lusztig_sommers_cell(RootDatum G,SpringerTable st_G,SpringerTable st_G_v,ComplexNilpotent dual_orbit)=void:
 show_lusztig_sommers_cells(G,st_G,st_G_v,[dual_orbit])
set show_lusztig_sommers_cell(RootDatum G, SpringerTable st_G,ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(G,st_G,G.dual.springer_table,O_v)

{set show_lusztig_sommers_cell(RootDatum G, ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(G,G.character_table,G.dual.springer_table,O_v)
set show_lusztig_sommers_cell(ComplexNilpotent O_v)=void:show_lusztig_sommers_cell(O_v.root_datum.dual,O_v)

set show_lusztig_sommers_cells(RootDatum G,SpringerTable st_G)=void:show_lusztig_sommers_cells(G,st_G,G.dual.springer_table,G.dual_orbits)
}
set show_lusztig_sommers_cells(RootDatum G)=void:show_lusztig_sommers_cells(G,G.springer_table,G.dual.springer_table,G.dual_orbits)

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