Documentation contents

Script File

W_reps.at

Source
atlas-scripts/W_reps.at (272 lines)
Definitions
27
Loads
Loaded by
complex.at coherent_irreducible.at sub_cells.at projectors_using_character_tables.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

L13operator (W_rep (dimension,operators), WeylElt w) = mat
matrix of pi(w)
L16operator (W_rep pi) = (WeylElt -> mat)

also defined in new_conjugacy.at

trivial_W

L20trivial_W (RootDatum rd) = W_rep
trivial representation of W
Compute characters of W-representations on cells, as obtained from W_cells
also induced characters from Levi subgroups, and the Steinberg character
L23

character

L28character (WeylClassTable tab, W_rep pi) = [int]
character of pi

also defined in combinatorics.at, modules.at

is_isomorphic

L32is_isomorphic (WeylClassTable tab, W_rep pi, W_rep sigma) = bool
isomorphism test using the character

matrix_of_inner_products

L39matrix_of_inner_products (WeylClassTable tab) = ([[int]] characters) mat
matrix of inner products of characters of representations

unique

L50unique (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

L64root_datum (WCell (,(rd,),)) = RootDatum

also defined in basic.at, K_Nilpotent.at, sommers.at

#

L65# (WGraph (,nodes)) = int

also 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 opposite
L67
sparse 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.help
L126
the |cell_action| functions really operate on |WGraph| data
L132

graph_action 3 overloads

L135graph_action (WGraph (rd,nodes),int s) = sparse_mat
matrix for s of graph, of coherent continuation action on irreducibles.
L148graph_action (WGraph graph,[int] w) = mat
matrix of action of product of simple reflections on a cell
L157graph_action (WGraph graph,WeylElt w) = mat
matrix of action of WeylElt on a cell

cell_action 3 overloads

L162cell_action (WCell cell,int s) = sparse_mat
matrix of action of i^th simple reflection on a cell
L166cell_action (WCell cell,[int] w) = mat
matrix of action of product of simple reflections on a cell
L170cell_action (WCell cell,WeylElt w) = mat
matrix of action of WeylElt on a cell

vertex_and_W_cells

L187vertex_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

L197W_cells_of (Param p) = [WCell]

cell_character

L201cell_character (WeylClassTable Wct,WCell cell) = [int]
character of representation of W on cell

cell_characters

L205cell_characters (WeylClassTable Wct,[WCell] cells) = [[int]]
list of characters of representation on list of cells

cells_table

L208cells_table (WeylClassTable Wct,[WCell] cells) = mat

cells_table_augmented

L211cells_table_augmented (WeylClassTable Wct, [WCell] cells) = mat

cell_representation

L216cell_representation (WeylClassTable Wct,WCell cell) = W_rep

cell_representations

L223cell_representations (WeylClassTable Wct,[WCell] cells) = [W_rep]
list of representations defined by an array of cells

induction L227

induce_character

L252induce_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

L269smallest_degree (WeylClassTable Wct, [int] character) = int
the 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).