Documentation contents

atlas Library · Script File

springer_table_BC.at

Source
atlas-scripts/springer_table_BC.at (319 lines)
Definitions
29
Loads
Loaded by
springer_tables_reductive.at springer_table_D.at

Definitions in source order

part_mults_to_classical_H

L9part_mults_to_classical_H ([int] frequencies_shifted) = vec
convert 1-based list of part multiplicities to H for Sp(2n) or SO(m)
Springer correspondence from nilpotent orbits to representations of W
in type B/C
orbit: partition encoded as semisimple H -> W(C_n)-irrep as pair of partitions
see Carter pg. 419
L18

type C L23

partitions_C

L26partitions_C = (int->[Partition])

freq_test_C

L31freq_test_C ([int] frequencies) = [int]

nilpotent_orbit_Sp

L35nilpotent_orbit_Sp (Partition lambda) = ComplexNilpotent
from (Jordan) partition (or composition) to Sp(2n) complex nilpotent orbit

nilpotent_orbit_C

L39nilpotent_orbit_C (RootDatum rd) = (Partition->ComplexNilpotent)

diagram_C_to_partition

L51diagram_C_to_partition ([int] diagram) = Partition
an inverse operation, starting from |stratified_diagram(orbit)|

partition_of_orbit_C

L68partition_of_orbit_C (ComplexNilpotent O) = Partition
when |O| is an orbit for some |rd| passing |test_simple_type("C",rd)|, the
function |partition_of_orbit_C| will find the corresponding Jordan type.
By using the (stratified) diagram, any radical component of |O.H| is ignored.

springer_C

L74springer_C (ComplexNilpotent O) = BiPartition
Springer map from Cn nilpotent orbit to BiPartition indexing a W-irrep

inverse_springer_partition_C

L79inverse_springer_partition_C (BiPartition (P,Q)) = (bool,Partition)

inverse_springer_C

L88inverse_springer_C(BiPartition partition_pair) = (bool,ComplexNilpotent)
inverse Springer map, from pair (P,Q) of partitions, both (padded with zeros
to be?) of size n, and sum(P)+sum(Q)=n, to ComplexNilpotent for Sp(2n)

also in this file at line 157

type B L95

partitions_B

L98partitions_B = (int->[Partition])

freq_test_B

L102freq_test_B ([int] frequencies) = [int]

nilpotent_orbit_SO

L109nilpotent_orbit_SO (Partition lambda) = ComplexNilpotent
from (Jordan) partition (or composition) to SO(2n+1) complex nilpotent orbit

also defined in springer_table_D.at

nilpotent_orbit_B

L113nilpotent_orbit_B (RootDatum rd) = (Partition->ComplexNilpotent)

diagram_B_to_partition

L127diagram_B_to_partition ([int] diagram) = Partition
an inverse operation, starting from |stratified_diagram(orbit)|

partition_of_orbit_B

L139partition_of_orbit_B (ComplexNilpotent O) = Partition
when |O| is an orbit for some |rd| passing |test_simple_type("B",rd)|, the
function |partition_of_orbit_B| will find the corresponding Jordan type.

springer_B

L144springer_B (ComplexNilpotent O) = BiPartition
Springer map from Cn nilpotent orbit to BiPartition indexing a W-irrep

inverse_springer_partition_B

L149inverse_springer_partition_B (BiPartition partition_pair) = (bool,Partition)
whether in image of springer_C, and if so pre-image

inverse_springer_C

L157inverse_springer_C(BiPartition partition_pair) = (bool,ComplexNilpotent)
inverse Springer map, from pair (P,Q) of partitions, both (padded with zeros
to be?) of size n, and sum(P)+sum(Q)=n, to ComplexNilpotent for SO(2n+1)

also in this file at line 88

duality L164

The function |C_adjust| takes an arbitrary partition of an even number, and
returns a modified version in which the multiplicity over every odd part size
is even. This is achieved by repeatedly moving a square of the diagram from a
row of odd length down to the end of the next row of strictly shorter odd
length (thus creating two new rows of even length, possibly the same length).
Progress is from longer to shorter rows, although given that the number of
rows of odd length must always be even, it could have been defined in to
opposite order with the same result: for the smallest odd row length with odd
multiplicity one square is borrowed from the next larger odd length row, then
repeat for the now smallest odd row length with odd multiplicity,and so on.
All in all a diagram valid for type C is found with minimal distance of
squares moved, though not necessarily with minimal number of squares moved (to
achieve that, odd lengths with even frequency would have to remain untouched).
L166

C_adjust

L181C_adjust (Partition P) = Partition
With respect to |C_adjust|, the function |B_adjust| only differs in that it
assumes a partition of an odd number is given (though this is less essential
for its functioning), and that the multiplicities of nonzero even row lengths
rather then of odd ones are made even, systematically replacing "odd length"
by "even length". The reasoning is somewhat modified, since the number of rows
with nonzero even length can have either parity; however if we need to move
down a box from the last nonzero even length with odd multiplicity, we can
move it to an empty row, thus adding a row of length~$1$. Therefore ordering
the traversal by decreasing row length is essential here. The number of rows
of nonzero length is always made odd, since the number of rows with odd length
must be odd, and that of nonzero even length is made even. To implement, we
manually set the frequency of parts of size zero to $1$, so that the search
for a smaller even length with odd multiplicity cannot fail (if it turns out
to be used, the loop will stop immediately thereafter; if not the frequency of
the zero length remains $1$, but this is ignored by the final |repeat_parts|).
L195

B_adjust

L212B_adjust (Partition P) = Partition
To map a partition of 2n+1 valid for type $B_n$ to a partition of 2n valid for
type $C_n$ we can conceptually first transpose (so every even nonzero column
length has even multiplicity), then remove a square from the last longest row,
run the transposed form of |C_adjust| (which ensures that all odd column
lengths occur with even multiplicity), and finally run the normal |C_adjust|.
This ensures that each maximal group of equal odd length rows starts at an
even index (so has an even number of preceding rows), and ends at an odd one.
To see this, the transposed |C_adjust| has ensured that each odd-indexed row
is shorter that the previous one by an even (possibly zero) amount, from which
one easily deduces that each maximal group of successive odd length rows
starts at an even index and has an even number of rows. The application of
normal |C_adjust| then operates within such groups, and any squares moved are
from an even-indexed row to the next row. As a consequence, the row length
property established by executing the transposed |C_adjust| still holds after
the normal |C_adjust| has run. The diagram of the resulting partition can then
be characterised by the fact that it meets all 2x2 squares of a doubly-sized
grid with the origin as vertex in an even number (0,2, or 4) of squares.
L228

B_to_C_dual

L247B_to_C_dual (Partition lambda) = Partition
To map to a partition of 2n valid for type $C_n$ to a partition of 2n+1 valid
for type $B_n$, we conceptually first transpose, add a square to the first
column, run the transposed form of |B_adjust| (which ensures that all nonzero
ven column lengths occur with even multiplicity), and finally run the normal
|B_adjust|. This time row 0 has odd length, and following pairs of odd-index
and successive even-index rows have lengths of equal parity. Again every
square that moves is between two such successive rows, and the property
established by the transposed |B_adjust| is preserved by the normal
|B_adjust|. The diagram of the resulting partition can then be characterised
by the fact that it meets all 2x2 squares of a doubly-sized grid with $(1,1)$
as vertex, with the exception of the 2x2 square centered at the origin, in an
even number of squares
L251

C_to_B_dual

L265C_to_B_dual (Partition lambda) = Partition
the dual maps are defined in terms of the |diagram| or |stratified_diagram| of
|O|, thus ignoring, and they should any radical component of |O.H|
L270

dual_map_C

L274dual_map_C(RootDatum rd) = (ComplexNilpotent->ComplexNilpotent)

also in this file at line 295

dual_map_B

L285dual_map_B(RootDatum rd) = (ComplexNilpotent->ComplexNilpotent)

also in this file at line 298

dual_map_C

L295dual_map_C (ComplexNilpotent O) = ComplexNilpotent

also in this file at line 274

dual_map_B

L298dual_map_B(ComplexNilpotent O_B) = ComplexNilpotent

also in this file at line 285

springer_table_C

L301springer_table_C (RootDatum rd) = SpringerTable

springer_table_B

L311springer_table_B (RootDatum rd) = SpringerTable

Generated from atlas-scripts at commit 648506c (2026-10-13).