Script File
W_reps.at
Definitions in source order
W_rep type
L10
set_type W_rep = (int dimension, [mat] operators)
Fields: dimension, operators
data type for representation of W operators[i] is the matrix of the action of simple generator #i
operator 2 overloads
L13
operator (W_rep (dimension,operators), WeylElt w) = matmatrix of pi(w)
L16
operator (W_rep pi) = (WeylElt -> mat)also defined in new_conjugacy.at
trivial_W
L20
trivial_W (RootDatum rd) = W_reptrivial representation of W
Compute characters of W-representations on cells, as obtained from W_cells also induced characters from Levi subgroups, and the Steinberg characterL23
character
L28
character (WeylClassTable tab, W_rep pi) = [int]character of pi
also defined in combinatorics.at, modules.at
is_isomorphic
L32
is_isomorphic (WeylClassTable tab, W_rep pi, W_rep sigma) = boolisomorphism test using the character
matrix_of_inner_products
L39
matrix_of_inner_products (WeylClassTable tab) = ([[int]] characters) matmatrix of inner products of characters of representations
unique
L50
unique (WeylClassTable tab,[W_rep] list) = [W_rep]reduce list of representations to one with at most 1 copy of any character
also defined in hodge_K_type_formula.at
cell representations L56
WCell, WGraph, WNode type
L59
set_type [ WCell = ([int] labels, WGraph graph,[sparse_mat] operators) , WGraph = (RootDatum root_datum, [WNode] nodes) , WNode = ([int] tau,[int,int] out_list) ]
Fields: labels, graph, operators, root_datum, nodes, tau, out_list
Type definitions that facilitate handling the output from built-in |W_cells|
root_datum
L64
root_datum (WCell (,(rd,),)) = RootDatumalso defined in basic.at, K_Nilpotent.at, sommers.at
#
L65
# (WGraph (,nodes)) = intalso defined in basic.at
Description of the cell representation taken from messages/wcells.help
One Weyl group representation attached to the graph, called coherent
continuation action, may be described as follows. On take a free Z-module with
basis {L_i} indexed by the block elements i. If root g is in the tau(j), then
s_g(L_j) = -L_j.
If g is not in tau(j), then
s_g(L_j) = L_j + sum_{elements i such that g in tau(i)} m_{i,j} * L_i,
where m_{i,j} denotes the multiplicity of the edge from i to j. In other
words, a term m*L_i appears in the sum for s_g(L_j) if the pair (j,m) appears
in the list for row i and moreover g is in tau(i) but not in tau(j). In matrix
form, the action of s_g is given by a matrix whose diagonal terms are given
using Iverson brackets [[]] as a_{j,j} = (-1)^[[g\notin\tau(j)]] and whose
off-diagonal terms are a_{i,j} = [[g\in\tau(i)\setminus\tau(j)]] m_{i,j}.
The Hecke algebra action associated to the graph, at q=1 and expressed with
respect to the basis of irreducible representations, each multiplied by a sign
given by the parity of its length (so that off-diagonal terms are non
negative), is similar, but differs in that diagonal entries have opposite
signs.
For example, here is a cell
([224,247,250,253,256],
[([0,1,2],[(1,1)]),
([0,1,3],[(0,1),(3,1),(4,1)]),
([1,2,3],[(3,1)]),
([0,2,3],[(1,1),(2,1)]),
([0,1,2],[(1,1)])
]
)
which can be visualized (dropping the m values which are all 1) as
0[224]: {1,2,3} <-> 1
1[247]: {1,2,4} <-> 0,3,4
2[250]: {2,3,4} <-> 3
3[253]: {1,3,4} <-> 1,2
4[256]: {1,2,3} <-> 1
and which gives for the coherent continuation action the matrices, acting from
the left (so columns are images),
|-1, 0, 0, 0, 0 | |-1, 0, 0, 0, 0 | |-1, 1, 0, 0, 0 | | 1, 0, 0, 0, 0 |
| 0,-1, 0, 0, 0 | | 0,-1, 0, 1, 0 | | 0, 1, 0, 0, 0 | | 1,-1, 0, 0, 1 |
| 0, 0, 1, 0, 0 |, | 0, 0,-1, 1, 0 |, | 0, 0,-1, 0, 0 |, | 0, 0,-1, 0, 0 |
| 0, 0, 1,-1, 0 | | 0, 0, 0, 1, 0 | | 0, 1, 0,-1, 0 | | 0, 0, 0,-1, 0 |
| 0, 0, 0, 0,-1 | | 0, 0, 0, 0,-1 | | 0, 1, 0, 0,-1 | | 0, 0, 0, 0, 1 |
Whenever an off-diagonal coefficient (i,j) is nonzero, then the diagonal entry
at (i,i) is -1 (as g\in\tau(i)); the one at (j,j) is +1 (g\notin\tau(j))
In the Hecke action all the diagonal entries are oppositeL67sparse matrix of the Hecke action (on the basis of length-parity flipped irreducible representations) of the i^th simple reflection on a cell A cell is a value of type WCell = ( [int] , [([int],[(int,int)])] ) as described in the W_cells@Block command in atlas-functions.helpL126
the |cell_action| functions really operate on |WGraph| dataL132
graph_action 3 overloads
L135
graph_action (WGraph (rd,nodes),int s) = sparse_matmatrix for s of graph, of coherent continuation action on irreducibles.
L148
graph_action (WGraph graph,[int] w) = matmatrix of action of product of simple reflections on a cell
L157
graph_action (WGraph graph,WeylElt w) = matmatrix of action of WeylElt on a cell
cell_action 3 overloads
L162
cell_action (WCell cell,int s) = sparse_matmatrix of action of i^th simple reflection on a cell
L166
cell_action (WCell cell,[int] w) = matmatrix of action of product of simple reflections on a cell
L170
cell_action (WCell cell,WeylElt w) = matmatrix of action of WeylElt on a cell
vertex_and_W_cells
L187
vertex_and_W_cells (Param p) = (int,[WCell])|W_cells@Param| is built-in and returns (int,[[int],[[int],[int,int]]])
Now that graph_action is defined we can define functions that return actual
values of type [WCell]. Note that |WCell| includes the last argument [mat].
W_cells(p)= (int, [ ([int], [ ([int],[(int,int)]) ]) ])
(index,[ (labels,[ WNode ]) ])
W_cells_of(p) =[ WCell ]
=[([int], WGraph,[sparse_mat]) ]
=[ (labels, (rd,[WNode]), [sparse_mat]) ]
vertex_and_W_cells(p)
=(int,[ WCell ])
=(int,[ ([int], WGraph,[sparse_mat]) ]_
=(int,[ (labels, (rd,[WNode]), [sparse_mat]) ])
|vertex| is number of |p| as used in |labels|L195
W_cells_of
L197
W_cells_of (Param p) = [WCell]cell_character
L201
cell_character (WeylClassTable Wct,WCell cell) = [int]character of representation of W on cell
cell_characters
L205
cell_characters (WeylClassTable Wct,[WCell] cells) = [[int]]list of characters of representation on list of cells
cells_table
L208
cells_table (WeylClassTable Wct,[WCell] cells) = matcells_table_augmented
L211
cells_table_augmented (WeylClassTable Wct, [WCell] cells) = matcell_representation
L216
cell_representation (WeylClassTable Wct,WCell cell) = W_repcell_representations
L223
cell_representations (WeylClassTable Wct,[WCell] cells) = [W_rep]list of representations defined by an array of cells
induction L227
induce_character
L252
induce_character (WeylClassTable Wct_G,WeylClassTable Wct_L,[int] pi_L) = [int]induction from a Levi factor Suppose L is a Levi in G, and |pi_L| is a class function on W(L), we want to compute the class function pi_G=ind_L^G(pi_L) on W(G) formula: if C is a conjugacy class for G pi_G(C) = |W(G)| / (|W(L)|*|C|) * \sum |C_i| pi_L(C_i) where the sum runs over the W(L)-conjugacy classes C_i in C\cap W(L) (this follows from Frobenius reciprocity, by pairing the character pi_L with the indicator function for C) In other words the value of |pi_L| on each class C_j in W(L) contributes to the induced character value only at the class C of W(G) containing it, and for this contribution its character value is multiplied by [W(G):W(L)] * |C_i|/|C| algorithm: initialize the result to be the 0-character run over conjugacy class representatives in L for each conjugacy class representative w_L compute w_G = class_of (w_L,G) and add to the character value at (the class) w_G the value: pi_L(w_L) * index(W(G):W(L))*|conjugacy class of w_L|/|conjugacy class of w| The factor by which pi_L(w_L) is multiplied is integer, as it is the index of the centraliser subgroup of w_L in W_L inside its centraliser subgroup of w_G
smallest_degree
L269
smallest_degree (WeylClassTable Wct, [int] character) = intthe sign representation occurs in S^(nr_of_posroots)(reflection), and this is the maximum necessary exponent to get all irreducibles
smallest k so that |character| has factor in common with S^k(reflection)
Generated from atlas-scripts at commit 7e1b958 (2026-09-17).