atlas Library · Script File
nilpotent_orbits.at
Definitions in source order
nilpotent_verbose
nilpotent_verbose = falseComplexNilpotent, RealNilpotent type
set_type
[ ComplexNilpotent = (RootDatum root_datum, void ., vec H{_of_triple})
, RealNilpotent = (vec H, KGBElt x, void .)
]Fields: root_datum, H, H, x
ComplexNilpotent: (RootDatum rd,vec H) where [H,X,Y] is a Lie triple, H\in X_*, and orbit=G.X H must satisfy <alpha,H>=0,1,2 for all simple roots, in particular is_dominant(H,rd) should hold
complex_nilpotent
complex_nilpotent (RootDatum rd, vec H) = ComplexNilpotentnilpotent
nilpotent = complex_nilpotent@(RootDatum,vec)an alias for people tired of typing "complex_"
ComplexNilpotentComponentDatum type
set_type ComplexNilpotentComponentDatum =
(ComplexNilpotent orbit,[int] orders,[(RootDatum,[ratvec])] pairs)Fields: orbit, orders, pairs
complex orbit; list of orders of conjugacy classes; for each conjugacy class a list of pairs (L,[ratvec]) L is a pseudo-Levi, and each ratvec is a semisimple element, each pair (L,ratvec) gives one conjugacy class in A(O)
=
= (ComplexNilpotent O1,ComplexNilpotent O2) = boolTwo complex nilpotent orbits are equal if the root data are, and moreover the H's are conjugate by the Weyl group. Since we assume dominant coweights all the time, equality test is just equality of both relevant components
also in this file at line 387; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, cyclotomic.at, polynomial.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
dim_nilpotent
dim_nilpotent (ComplexNilpotent(rd,,H)) = intdimension of the orbit of nilpotents described by a |ComplexNilpotent|
dim
dim = dim_nilpotent@ComplexNilpotenta synonym
saturate 2 overloads
saturate(ComplexNilpotent O,RootDatum rd) = ComplexNilpotentsaturate an orbit from an equal rank subgroup to G
replace the |root_datum| and re-|dominant| for it
saturate(ComplexNilpotent O,mat inc,RootDatum rd) = ComplexNilpotentsaturate an orbit from an injectively mapped group |S=O.root_datum|, the
embedding X_*(T_S-> X_*(T_{rd}) being right-multiplication by |inc|; in other
words |inc| itself is the projection matrix X^*(T_{rd}->X^*(T_S)
also defined in disconnected.at, nilpotent_posets.at
diagram
diagram(ComplexNilpotent O) = [int]As will be mentioned for many "simple" Springer table constructions, it is noteworthy that |diagram(O)| and |stratified_diagram(O)| allow |O.H| to have a nonzero "radical component", which is ignored since only the evaluation on roots is used. This property allows the construction of Springer tables for general root data to pass an orbit to its "simple" sub-rootdata without explicitly projecting away the part of |O.H| that is irrelevant for it.
stratified_diagram 2 overloads
stratified_diagram(ComplexNilpotent O,[int] map) = [int]with |map| a permutation of the simple generators from |Cartan_matrix_type|
stratified_diagram(ComplexNilpotent O) = [int]diagram_normalized
diagram_normalized(ComplexNilpotent O) = [[int]]diagram_normalized returns [[int]] to allow for multiple simple factors
however, there is no sorting of simple factors of |Lie_type(O.root_datum)
complex_nilpotent_from_diagram
complex_nilpotent_from_diagram(RootDatum rd,[int] diagram) = ComplexNilpotentconstruct complex orbit (rd,(),H) from (rd,labelled Dynkin diagram)
sort_by_dimension
sort_by_dimension = ([ComplexNilpotent]->[ComplexNilpotent])also in this file at line 399; also defined in subgroups.at
find 2 overloads
find = find(=@(ComplexNilpotent,ComplexNilpotent))find ([RealNilpotent] list,RealNilpotent O) = intalso defined in basic.at, tits_centralizer.at, cells.at, K_types.at, hodgeParamLaurentPol.at, extended.at, disconnected.at, nilpotent_posets.at, K_types_plus.at
remove_duplicates
remove_duplicates([ComplexNilpotent] orbits) = [ComplexNilpotent]also defined in restricted_roots.at, parameters.at, disconnected.at
dim_eigenspace
dim_eigenspace (RootDatum rd, ratvec H, int k) = intmax_eigenvalue
max_eigenvalue (RootDatum rd, vec H) = inteigenspace_dimensions
eigenspace_dimensions (RootDatum rd, vec H) = [int]even_eigenspaces
even_eigenspaces (RootDatum rd, vec H) = [int]odd_eigenspaces
odd_eigenspaces(RootDatum rd, vec H) = [int]support
support (Param p) = [int]using |support@KGBElt| from parabolics.at
also defined in parabolics.at, W_reps_type_BC.at, cyclotomic_Lie_algebra.at, bracket.at
support_dual
support_dual (Param p) = [int]also defined in parabolics.at, Vogan-dual.at
blocku
blocku(RealForm G) = [Param]S_weight
S_weight ([int] S, RootDatum rd) = ratvecAuxiliary function: For a list of integers giving simple roots, compute twice the sum of the corresponding fundamental coweights.
H_candidates
H_candidates (RootDatum rd) = [ratvec]These are candidates H for the semisimple element of an SL(2) triple; not necessarily a vec, for example in SL(3).
distinguished_Hs_definition
distinguished_Hs_definition (RootDatum rd_L) = [vec]Choose the H among the candidates which correspond to distinguished nilpotent orbits.
distinguished_Hs
distinguished_Hs (RootDatum rd) = [vec]in order to implement the effect of |distinguished_Hs_definition| more efficiently, each of the |H_candidates| can be represented by |v=H/2|, so that when applied to a posroot, the integer value gives half the eigenvalue; the the dimension difference above then is found by counting the occurrences of a value 0 twice (as the opposite root also contributes here), minus the occurrences of a value 1; when total is zero, we record |H=v*2| in the result.
distinguished_H_diagrams
distinguished_H_diagrams (RootDatum rd, RootDatum rd_L) = [vec]distinguished_H_dom
distinguished_H_dom (RootDatum rd, RootDatum rd_L) = [vec]As previous function, with H dominant.
all_H
all_H (RootDatum rd) = [vec]Given a Root Datum rd for a complex group G, list the neutral elements (dominant for G) corresponding to the complex nilpotent orbits.
all_H_nd
all_H_nd (RootDatum rd) = [vec]As previous function, except the coweights H are given as sums of fundamental weights for the standard (Bala-Carter) Levi M in which the orbit is distinguished. This is the conjugate of H used for further calculation.
nilpotent_orbits
nilpotent_orbits (RootDatum rd) = [ComplexNilpotent]List all (complex) nilpotent orbits(with H dominant) for a complex group.
also defined in disconnected.at
orbits
orbits = (RootDatum->[ComplexNilpotent])tired of typing so many characters
also defined in disconnected.at
distinguished_nilpotent_orbits
distinguished_nilpotent_orbits (RootDatum rd) = [ComplexNilpotent]distinguished_orbits
distinguished_orbits = (RootDatum->[ComplexNilpotent])alias
Bala_Carter_Levi_plus
Bala_Carter_Levi_plus (ComplexNilpotent O) = ([int],vec)return Bala-Carter Levi and distinguished H_L for it, conjugate to |O.H|
Bala_Carter_simples
Bala_Carter_simples (ComplexNilpotent O) = [int]Bala-Carter Levi subgroup only
Bala_Carter_Levi
Bala_Carter_Levi (ComplexNilpotent O) = RootDatumBala-Carter Levi subgroup only
all_H_with_L
all_H_with_L (RootDatum rd) = [[int],[vec]]List all H's for |rd|, grouping them by standard Levi in which they are disinguished
Levi_of_H
Levi_of_H (vec H0,RootDatum rd) = ([int],vec)Given a coweight H corresponding to a complex nilpotent orbit, find the Levi M in which the orbit is distinguished. The output is the pair consisting of the simple roots for M, and the conjugate of H corresponding to the standard Levi M (not dominant for G). The input H0 need not be dominant.
parabolics.at defines type |Parabolic| and |KGPElt| as ([int] S, KGBElt x)L262
find_H
find_H (Parabolic P) = [vec,mat]find H which work for given q=q(x,H)=(L,u)
max_only
max_only ([vec,mat] arg) = [vec,mat]also defined in W_reps_type_BC.at
<=
<= ([int] a,[int] b) = boolcontainment order
also defined in basic.at, combinatorics.at
<
< ([int] a,[int] b) = boolalso defined in basic.at
principal_block
principal_block (RealForm G) = Blockconvert 2 overloads
convert (Block B,ratvec gamma) = [Param]convert Block to [param]
convert (Block B, [int] S,ratvec gamma) = [Param]just subset of block
also in this file at line 312, line 313; also defined in W_K.at
real_form
real_form (Block B) = RealFormalso in this file at line 393; also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, K.at, hodgeParamLaurentPol.at, hodgeParamPol.at
rho
rho (Block B) = ratvecalso defined in basic.at, nilpotent_orbit_partitions.at, extended_misc.at
choose_gamma 2 overloads
choose_gamma (KGBElt x,KGBElt y) = ratvecchoose appropriate infinitesimal character for (x,y)
choose_gamma (Block B) = ratvecchoose appropriate infinitesimal character for B
convert 2 overloads
convert (Block B) = [Param]convert (Block B,[int] S) = [Param]also in this file at line 296, line 300; also defined in W_K.at
convert_list_W_cells
convert_list_W_cells (Block B,ratvec gamma,[[int]] Wcells) = [[Param]]convert list of wcells [[int]] to [[Param]]
tau_invariants
tau_invariants (Block B) = [[int]]return list of tau-invariants for B tau_invariants(B)[i]=tau-invariant of block element i
tau_invariants_of_cell
tau_invariants_of_cell (Block B, [int] cell) = [int,[int]]tau_invariants_of_cell_raw
tau_invariants_of_cell_raw (Block B, [int] cell) = [[int]]tau_containing
tau_containing (Block B,[int] P) = [int]is_Aq
is_Aq (KGBElt x,KGBElt y) = boolmoved elsewhere since needed earlier for now: is_Aq.at
test if (x,y) -> Aq parameter
the first version isn't necessary, just use the second
because element(B,i) returns (x,y), so this makes is_Aq(element(B,i)) work:
set is_Aq(KGBElt x,KGBElt y) = is_Aq(parameter(x,y,choose_gamma(x,y)))
also in this file at line 350
is_Aq_cell
is_Aq_cell (Block B,[int] C) = boolis_Aq
is_Aq (Block B,int i) = boolalso in this file at line 344
Aq_cells
Aq_cells (Block B,[[int]] cells) = [[int]]also in this file at line 358
Aq_reps
Aq_reps (Block B,[int] cell) = [int]Aq_cells
Aq_cells (RealForm G,[[int]] cells) = [[int]]also in this file at line 352
real_nilpotent
real_nilpotent (vec H,KGBElt x) = RealNilpotentprintable_real_nilpotent
printable_real_nilpotent (RealNilpotent (H,x,)) = (vec,KGBElt)parabolic_of_orbit
parabolic_of_orbit (RealNilpotent (H,x,)) = Parabolic=
=(RealNilpotent (H,x,):O1, RealNilpotent (K,y,):O2) = boolalso in this file at line 42; also defined in basic.at, combinatorics.at, modules.at, parabolics.at, synthetic.at, hash.at, tits.at, K_highest_weights.at, cyclotomic.at, polynomial.at, W_reps_type_BC.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, extended.at, disconnected.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at
root_datum
root_datum (RealNilpotent O) = RootDatumalso defined in basic.at, W_reps.at, K_Nilpotent.at, sommers.at, parabolics.at, K.at, W_classes.at, extended_misc.at, character_tables.at, springer_tables.at, disconnected.at, cyclotomic_Lie_algebra.at, bracket.at, exceptional.at
real_form
real_form (RealNilpotent O) = RealFormalso in this file at line 303; also defined in basic.at, weak_packets_precomputed_cell_traces.at, parabolics.at, K.at, hodgeParamLaurentPol.at, hodgeParamPol.at
Levi_of_orbit
Levi_of_orbit (RealNilpotent O) = RealFormcomplex_orbit
complex_orbit (RealNilpotent O) = ComplexNilpotentdimension
dimension (RealNilpotent O) = intalso defined in basic.at, finite_dimensional.at, K_highest_weights.at, character_tables.at, W_reps_type_BC.at, tensor_product.at, exceptional.at
sort_by_dimension
sort_by_dimension = ([RealNilpotent]->[RealNilpotent])also in this file at line 97; also defined in subgroups.at
simple_roots_from_coweight
simple_roots_from_coweight (RootDatum rd, ratvec v) = [int]simple_roots_from_coweights
simple_roots_from_coweights (RootDatum rd,[ratvec] list) = [[int]]find_cayley
find_cayley (KGBElt x) = intchoose_Cayley
choose_Cayley (int i,KGBElt x) = KGBEltmove_to_distinguished_fiber 3 overloads
move_to_distinguished_fiber (KGBElt x) = (KGBElt,WeylElt)move_to_distinguished_fiber (([int] H,KGBElt x)) = (vec,KGBElt)move_to_distinguished_fiber (RealNilpotent O) = RealNilpotentstabilizer_of_x
stabilizer_of_x (KGBElt x) = [WeylElt]viable_Levis
viable_Levis (RealForm G,[int] S) = [RealForm]Given a real group G and a list of simple roots determining a standard complex Levi MC, make a list of real forms of MC in G.
test_real_orbit
test_real_orbit (RealForm G,[int] H, RealForm M, [int] S) = [KGBElt]Given a real form G, a coweight H which determines a complex nilpotent orbit OC, distinguished in the Levi MC, find all KGB elements x so that (H,x,) is a real form of OC. M is a real form of MC in G, and MC is determined by the simple roots S. H must be the conjugate determined by MC.
all_real_nilpotent_orbit_KGBs
all_real_nilpotent_orbit_KGBs (RealForm G,[int] H) = [KGBElt]Given G and a coweight H, find all x so that (H_nd,x,) is a real nilpotent orbit. Here H_nd is the conjugate of H corresponding to the associated Bala-Carter Levi M. There may be duplications of orbits.
is_conjugate_orbit
is_conjugate_orbit (RealNilpotent O,RealNilpotent P) = booldominant
dominant (RealNilpotent(H,x,):O) = RealNilpotentReplace (H,x) with equivalent (H',x') with H' dominant.
also defined in basic.at
find_conjugate
find_conjugate ([RealNilpotent] list,RealNilpotent O) = intalso defined in subgroups.at
real_nilpotent_orbit_KGBs
real_nilpotent_orbit_KGBs (RealForm G,vec H) = [KGBElt]Remove duplications (conjugates) from the list of all_real_nilpotent_orbit_KGBs.
real_nilpotent_orbit_KGPs
real_nilpotent_orbit_KGPs (RealForm G,vec H) = [KGPElt]Auxiliary function.
real_nilpotent_orbits
real_nilpotent_orbits (RealForm G) = [RealNilpotent]Make a list of all real nilpotent orbits (H,x,) of G with H dominant and x in the distinguished fiber.
number_real_nilpotent_orbits 3 overloads
number_real_nilpotent_orbits (RealForm G) = intnumber_real_nilpotent_orbits ([RealForm] groups) = [int]number_real_nilpotent_orbits (InnerClass ic) = [int]real_nilpotent_orbits
real_nilpotent_orbits (ComplexNilpotent OC,RealForm G) = [RealNilpotent]Make a list of the real forms of a given complex nilpotent orbit.
number_real_nilpotent_orbits 3 overloads
number_real_nilpotent_orbits (ComplexNilpotent O,RealForm G) = intnumber_real_nilpotent_orbits (ComplexNilpotent O,[RealForm] groups) = [int]number_real_nilpotent_orbits (ComplexNilpotent O,InnerClass ic) = [int]real_nilpotent_orbits
real_nilpotent_orbits([RealNilpotent] list, ComplexNilpotent OC) = [RealNilpotent]filter |list| of real nilpotents, keeping the real forms of given OC
make_dominant_H
make_dominant_H (RealNilpotent (H,x,):O) = RealNilpotentLevis_with_distinguished_orbit
Levis_with_distinguished_orbit (RealNilpotent (H,x,):O) = [(vec,KGBElt),RealForm]Given a real nilpotent orbit, find all real Levi subgroups M so that the orbit has an element that is distinguished in M. There may be duplications.
find_vec
find_vec (vec H, [vec] m) = intis_w_conjugate
is_w_conjugate ([vec] r1, [vec] r2, WeylElt w) = boolis_conjugate
is_conjugate ([vec] r1, [vec] r2, [WeylElt] W) = boollaborious test to see if acting by any w in W transforms r1 into r2
also defined in all_finite_order.at, synthetic.at
is_W_conjugate
is_W_conjugate ([vec] r1, [vec] r2, RootDatum rd) = boolis_W_conjugate_by_w 2 overloads
is_W_conjugate_by_w ([vec] r1, [vec] r2, [WeylElt] W) = (bool,WeylElt)same, but export a witnessing |w| too
is_W_conjugate_by_w ([vec] r1, [vec] r2, RootDatum rd) = (bool,WeylElt)embed_aff
embed_aff (RootDatum rd) = (int->int)pseudo_root_indices
pseudo_root_indices ([int] S, RootDatum rd) = [int]pseudo_roots
pseudo_roots ([int] S, RootDatum rd) = [vec]this function assumes elements of |S| are >=0, and |rd| has a |highest_root|
roots
roots ([int] S, RootDatum rd) = [vec]also defined in basic.at
two_rho_of_pseudo_Levi
two_rho_of_pseudo_Levi (RootDatum rd,[int] list) = vecpseudo_Levis
pseudo_Levis (RootDatum rd) = [[int]]use is_conjugate to test conjugacy
this only works if rd(.derived?) is simple
alternative: pseudo_Levi_subgroups defined in subgroups.at
also in this file at line 684
use is_conjugate to test conjugacyL637
Commented-out code, lines 638–661 (23 lines)
slightly different version from jda
delete this once we're sure we have the right version
set pseudo_Levis (RootDatum rd)=[[int]]: let W=W(rd) then
r=semisimple_rank(rd) then
levis=standard_Levi_conjugacy_representatives(rd) then
triples=[([int],vec,[vec])]:
for L in levis
do (L,two_rho_of_pseudo_Levi(rd,L),pseudo_roots(L,rd)) od
in for S in power_set(#r)
do let T=add_element(S,r) in
if #S<r then let rhoT=two_rho_of_pseudo_Levi(rd,T) then
pr=pseudo_roots(T,rd) then
temp=[([int],vec,[vec])]:
##for (a,v,c) in triples
do if v=rhoT then [(a,v,c)] else []
fi
od in
if none(for (,,m) in temp do is_conjugate(pr,m,W) od)
then triples#:=(T,rhoT,pr)
fi
fi
od;
for (T,,) in triples do T odd_L 2 overloads
d_L (RootDatum rd,[int] L) = intdon't need d_L
d_L(RootDatum rd,RootDatum rd_L)is_conjugate_pseudo_Levi
is_conjugate_pseudo_Levi ([int] L, [int] M, RootDatum rd) = booldon't use this, use is_conjugate(rd,L,M) from conjugate.at instead
pseudo_Levis
pseudo_Levis (ComplexNilpotent O) = [RootDatum,vec]replaces old pseudo_Levis_of_orbit also return H_L in L mapping to (conjugacy class of) H in rd use H_L to construct the relevant centralizer_rd(H_L) for use in generators_of_component_group
also in this file at line 616
saturating_orbits
saturating_orbits(ComplexNilpotent O) = [ComplexNilpotent]orbits in pseudo Levis which saturate to O
pseudo_Levi
pseudo_Levi(RootDatum rd,[int] S) = RootDatumNote: affine root is n+1 not 0
this works only if rd.derived is simple
filter
filter(RootDatum rd,[[int],WeylElt] list) = [[int],WeylElt]run over list of pairs [(v,w)], only keep those for which the v's give distinct torus elements use this to filter result of Kac_diagrams_with_centralizer previously the filtering was done on the fly which was wasteful
also defined in basic.at, subgroups.at
Kac_diagrams_with_centralizer
Kac_diagrams_with_centralizer (RootDatum rd, RootDatum L,int m) = [([int],WeylElt)]use |permuting_transporter| from conjugate.at to test pseud-Levi conjugacy
Given a pseudo-Levi L, find all Kac diagrams of order m and whose centralizer is conjugate to L.
order_center is defined in center.atL748
Commented-out code, lines 749–749 (1 lines)
set order_of_center (RootDatum rd)=#Kac_classes_given_order(rd,1)
Kac_triples_simple
Kac_triples_simple (RootDatum rd,RootDatum L, int c) = [(int,[int],ratvec,WeylElt)]Kac_triples
Kac_triples (RootDatum rd, RootDatum L) = [(int,[int],ratvec,WeylElt)]in_radical
in_radical (ratvec v, RootDatum rd) = boolgenerators_of_Z_mod_Z_0
generators_of_Z_mod_Z_0 (RootDatum rd, RootDatum L) = [ratvec]lift
lift(RootDatum rd,ratvec v) = ratvecNeed a matrix A lifting an element of T/Z(G)^0 to T, i.e. satisfying: Gmod=G/Z^0 A*simple_coroots(Gmod)=simple_coroots(G) Gmod is semisimple so simple_coroots(Gmod) is (square and) invertible/Q => A=simple_coroots(G)*inverse(simple_coroots(Gmod)) this is applied to L
also defined in hash.at, tits.at, center.at, disconnected.at
generators_of_component_group_old
generators_of_component_group_old (ComplexNilpotent O) = [RootDatum,[ratvec],[ratvec],[ratvec],[ratvec]]generators_of_component_group_debug
generators_of_component_group_debug (ComplexNilpotent O)returns array of: L H_L Lmod Z_Lmod L_rad M, Z_Lmod_reg, Z_Lmod_reg_lifted)
generators_of_component_group
generators_of_component_group (ComplexNilpotent O) = [(RootDatum,vec,[ratvec],[ratvec],[ratvec],[ratvec])]complex_Levi
complex_Levi(ComplexNilpotent O) = RootDatumcomplex Levi of orbit: defined by diagram of H (not the Bala Carter Levi)
also defined in parabolics.at
order_in_A
order_in_A (ratvec v, RootDatum rd, vec H) = intcomponent_datum
component_datum(ComplexNilpotent O) = ComplexNilpotentComponentDatumcomponent_datum_plus
component_datum_plus(ComplexNilpotent O) = (ComplexNilpotent,[int],[(RootDatum,vec,[ratvec])])component_representatives
component_representatives(ComplexNilpotent orbit) = [RootDatum,ratvec]representatives of conjugacy classes in A(O) each ratvec v gives an element exp(2\pi iv) which is G-conjugate to an element of Cent(O)
component_representatives_plus
component_representatives_plus(ComplexNilpotent orbit) = [(RootDatum,vec,ratvec)]conjugacy_class_orders
conjugacy_class_orders(ComplexNilpotent O) = [int]number_conjugacy_classes_component_group
number_conjugacy_classes_component_group(ComplexNilpotent O) = intnumber_conjugacy_classes_A
number_conjugacy_classes_A = (ComplexNilpotent->int)show
show(ComplexNilpotentComponentDatum d) = voidalso defined in modules.at, K_Nilpotent.at, good_W_representatives.at, arthur_parameters.at, sub_cells.at, associated_variety_annihilator.at, geck_generic.at, L_packet.at, ratmat.at, Levi_subgroups.at, subgroups.at, poset.at, cyclotomic.at, polynomial.at, character_tables.at, springer_tables.at, hodgeParamLaurentPol.at, hodgeParamPol.at, laurentPolynomial.at, weak_packets.at, cyclotomic_Lie_algebra.at, cyclotomicMat.at, bracket.at, exceptional.at, nilpotent_posets.at, lazy_lists.at
print_component_info
print_component_info (ComplexNilpotent O) = voidalso in this file at line 990
print_component_info_long
print_component_info_long (ComplexNilpotent O) = voidalso in this file at line 995
print_component_info
print_component_info (RootDatum rd) = voidalso in this file at line 970
print_component_info_long
print_component_info_long (RootDatum rd) = voidalso in this file at line 982
print_component_info_short
print_component_info_short (RootDatum rd) = voidprint_component_info_alt
print_component_info_alt (RootDatum rd) = voidprincipal, zero, subregular and minimal orbits L1015
principal_orbit
principal_orbit(RootDatum rd) = ComplexNilpotentzero_orbit
zero_orbit(RootDatum rd) = ComplexNilpotentsubregular_orbit_simple
subregular_orbit_simple (RootDatum rd) = ComplexNilpotentminimal_orbit_simple
minimal_orbit_simple(RootDatum rd) = ComplexNilpotentsubregular_orbits
subregular_orbits(RootDatum rd) = [ComplexNilpotent]if rd has n simple factors it has n subregular orbits each has codimension 2 could find them by dimension, but alternatively take the product of the principal orbits in all but 1 factor, and the subregular in that factor this is what is needed in the minimal case subregular_orbits(rd)[i] is the subregular orbit on factor i, and principal on all other factors
minimal_orbits
minimal_orbits(RootDatum rd) = [ComplexNilpotent]if rd has n simple factors it has n minimal orbits take the product of the 0 orbit in all but 1 factor, and the minimal orbit in that factor minimal_orbits(rd)[i] is the minimal orbit on factor i, and 0 on all other factors
minimal_real_nilpotent_orbits
minimal_real_nilpotent_orbits (RealForm G) = [RealNilpotent]show commands moved to nilpotent_centralizer.atL1084
Commented-out code, lines 1085–1092 (6 lines)
set show_nilpotent_orbits([ComplexNilpotent] orbits)=void:
tabulate(for orbit in orbits do
[orbit.H{_of_triple}.to_string,orbit.diagram.to_string,orbit.dim_nilpotent.to_string] od)
set show_nilpotent_orbits(RootDatum rd)=void:
show_nilpotent_orbits(nilpotent_orbits(rd))integrality_datum
integrality_datum (ComplexNilpotent O_check) = RootDatumintegrality_datum of an orbit O_check for G_check rd=root datum on group side -> integrality_datum(rd,H/2) this is the dual of the root datum of a subgroup of G_check
also defined in basic.at, extended_misc.at
integral_descent
integral_descent (ComplexNilpotent O_check) = ComplexNilpotentgiven an orbit O_check on the dual side rd_int: integrality datum(O_check) rd_int_dual: dual(rd_int), root datum of subgroup on dual side return (rd_int_dual,(),O_check.H)
also defined in springer_tables.at
see weak_packets.at for integral_descent@(SpringerTable,ComplexNilpotent)L1109
is_even
is_even(ComplexNilpotent O) = boolalso defined in basic.at, exceptional.at
is_non_even
is_non_even(ComplexNilpotent O) = booleven_orbits 2 overloads
even_orbits([ComplexNilpotent] orbits) = [ComplexNilpotent]even_orbits(RootDatum rd)non_even_orbits 2 overloads
non_even_orbits([ComplexNilpotent] orbits) = [ComplexNilpotent]non_even_orbits(RootDatum rd) = [ComplexNilpotent]dual_orbits
dual_orbits (RootDatum rd) = [ComplexNilpotent]even_dual_orbits
even_dual_orbits(RootDatum rd) = [ComplexNilpotent]non_even_dual_orbits
non_even_dual_orbits(RootDatum rd) = [ComplexNilpotent]twist
twist(mat delta,ComplexNilpotent O) = ComplexNilpotentO.H\in X_*, delta acts on right
also defined in basic.at, extended_misc.at
Generated from atlas-scripts at commit 648506c (2026-10-13).
Commented-out code, lines 362–379 (17 lines)
Real nilpotents |set_type RealNilpotent = (vec H, KGBElt x, void .)| defined above A real nilpotent orbit is determined by a coweight H and a KGBElt x where x should be in the distinguished fiber, and H\in X_* is the semisimple element of a Lie triple. It is required that \theta_x(H)=H set q=parabolic_by_cwt(x,H), then orbit=induced from trivial orbit of Levi factor, equivalently =associated variety of A_q(lambda) If H is dominant it must satisfy: <\alpha,H>\in {0,1,2} for all simple alpha not all such H are allowed (H,x) is equivalent to (H*inverse(w), cross(w,x)) in particular if H is not dominant it can be replaced by an equivalent one with H dominant