atlas Library · Script File
springer_table_BC.at
Definitions in source order
part_mults_to_classical_H
L9
part_mults_to_classical_H ([int] frequencies_shifted) = vecconvert 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. 419L18
type C L23
partitions_C
L26
partitions_C = (int->[Partition])freq_test_C
L31
freq_test_C ([int] frequencies) = [int]nilpotent_orbit_Sp
L35
nilpotent_orbit_Sp (Partition lambda) = ComplexNilpotentfrom (Jordan) partition (or composition) to Sp(2n) complex nilpotent orbit
nilpotent_orbit_C
L39
nilpotent_orbit_C (RootDatum rd) = (Partition->ComplexNilpotent)diagram_C_to_partition
L51
diagram_C_to_partition ([int] diagram) = Partitionan inverse operation, starting from |stratified_diagram(orbit)|
partition_of_orbit_C
L68
partition_of_orbit_C (ComplexNilpotent O) = Partitionwhen |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
L74
springer_C (ComplexNilpotent O) = BiPartitionSpringer map from Cn nilpotent orbit to BiPartition indexing a W-irrep
inverse_springer_partition_C
L79
inverse_springer_partition_C (BiPartition (P,Q)) = (bool,Partition)inverse_springer_C
L88
inverse_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
L98
partitions_B = (int->[Partition])freq_test_B
L102
freq_test_B ([int] frequencies) = [int]nilpotent_orbit_SO
L109
nilpotent_orbit_SO (Partition lambda) = ComplexNilpotentfrom (Jordan) partition (or composition) to SO(2n+1) complex nilpotent orbit
also defined in springer_table_D.at
nilpotent_orbit_B
L113
nilpotent_orbit_B (RootDatum rd) = (Partition->ComplexNilpotent)diagram_B_to_partition
L127
diagram_B_to_partition ([int] diagram) = Partitionan inverse operation, starting from |stratified_diagram(orbit)|
partition_of_orbit_B
L139
partition_of_orbit_B (ComplexNilpotent O) = Partitionwhen |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
L144
springer_B (ComplexNilpotent O) = BiPartitionSpringer map from Cn nilpotent orbit to BiPartition indexing a W-irrep
inverse_springer_partition_B
L149
inverse_springer_partition_B (BiPartition partition_pair) = (bool,Partition)whether in image of springer_C, and if so pre-image
inverse_springer_C
L157
inverse_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
L181
C_adjust (Partition P) = PartitionWith 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
L212
B_adjust (Partition P) = PartitionTo 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
L247
B_to_C_dual (Partition lambda) = PartitionTo 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 squaresL251
C_to_B_dual
L265
C_to_B_dual (Partition lambda) = Partitionthe 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
L274
dual_map_C(RootDatum rd) = (ComplexNilpotent->ComplexNilpotent)also in this file at line 295
dual_map_B
L285
dual_map_B(RootDatum rd) = (ComplexNilpotent->ComplexNilpotent)also in this file at line 298
dual_map_C
L295
dual_map_C (ComplexNilpotent O) = ComplexNilpotentalso in this file at line 274
dual_map_B
L298
dual_map_B(ComplexNilpotent O_B) = ComplexNilpotentalso in this file at line 285
springer_table_C
L301
springer_table_C (RootDatum rd) = SpringerTablespringer_table_B
L311
springer_table_B (RootDatum rd) = SpringerTableGenerated from atlas-scripts at commit 648506c (2026-10-13).