[MacBook-Pro:~/math/atlasofliegroupsMASTER/atlas-scripts] dav% atlas This is 'atlas' (version 1.0.9, axis language version 1.0), the Atlas of Lie Groups and Representations interpreter, compiled on May 26 2021 at 12:52:13. http://www.liegroups.org/ atlas> set G=GL(4) Variable G: RootDatum atlas> set ct=G.character_table Variable ct: CharacterTable atlas> show(ct) Classes: i order class_size |cent| sgn(w) chi_ref(w)) name 0 1 1 24 1 3 [1,1,1,1] 1 2 6 4 -1 1 [2,1,1] 2 2 3 8 1 -1 [2,2] 3 3 8 3 1 0 [3,1] 4 4 6 4 -1 -1 [4] Representations: i dim deg fdeg name 0 1 0 [4] 1 3 1 [3,1] 2 2 2 [2,2] 3 3 3 [2,1,1] 4 1 6 [1,1,1,1] atlas> ct.sym_power sym_power sym_power_refl sym_power_reflection sym_powers_reflection atlas> ct.sym_power_reflection(2) Value: [6,2,2,0,0] atlas> {character of S_4 on S^2(h)... dim(h) = 4, so dim(S^2(h)) = 4*5/2 = 10: ct ignores center of G} atlas> {decompose S^2(h/center) into irrs: "view"} atlas> view(ct,ct.sym_power_reflection (2)) # mult dim deg fdeg 0 1 1 0 1 1 3 1 2 1 2 2 atlas> atlas> atlas> for m:7 do prints("degree = ",m," dim invariants = ",ct.inner(ct.sym_power_reflection (m),ct.characters[0])) od degree = 0 dim invariants = 1 degree = 1 dim invariants = 0 degree = 2 dim invariants = 1 degree = 3 dim invariants = 1 degree = 4 dim invariants = 2 degree = 5 dim invariants = 1 degree = 6 dim invariants = 3 Value: [(),(),(),(),(),(),()] atlas> {first degree where there are invts (after 0) is d_1=2; now "subtract 1" from mult in every even degree} atlas> {That's powers of deg 2 invariant: left with sequence 0,0,0,1,1,1,2} atlas> {Has to be invt deg 3; subtract 1 from mults of 3... 0,0,0,0,1,1,1 (last three levels are 4,5,6} atlas> {AND 1 from deg 5 (prod of degs 2 and 3)... --> 0,0,0,0,1,0,1...: invt deg 4; } atlas> <int) Added definition [3] of mult: (CharacterTable,int,int->int) Defined partial_harm: (CharacterTable,int,int,[int]->int) Defined invariants_to: (CharacterTable,int->[int]) Defined invariants: (CharacterTable->[int]) Defined harm: (CharacterTable,int,int->int) Added definition [2] of harm: (CharacterTable,[int],int,int->int) Added definition [3] of harm: (CharacterTable,int->[int]) Redefined harm: (CharacterTable,int->[int]) Added definition [4] of harm: (CharacterTable,[int],int->[int]) Completely read file '/Users/dav/math/atlasofliegroupsMASTER/atlas-scripts/harmonic.at'. atlas> invariants(ct) Value: [2,3,4] atlas> set ct8=E8_s.character_table Variable ct8: CharacterTable atlas> invariants(ct8) Value: [2,8,12,14,18,20,24,30] atlas> product($) {This is always |W|} Value: 696729600 atlas> {harmonic.at also calculates all degrees in which an irr of W appears:} atlas> show(ct) Classes: i order class_size |cent| sgn(w) chi_ref(w)) name 0 1 1 24 1 3 [1,1,1,1] 1 2 6 4 -1 1 [2,1,1] 2 2 3 8 1 -1 [2,2] 3 3 8 3 1 0 [3,1] 4 4 6 4 -1 -1 [4] Representations: i dim deg fdeg name 0 1 0 [4] 1 3 1 [3,1] 2 2 2 [2,2] 3 3 3 [2,1,1] 4 1 6 [1,1,1,1] atlas> {irr #1 is reflection rep; dim 3, appears in degrees 1,...?} atlas> harm(ct,1) Value: [0,1,1,1,0,0,0] {So it appears harmonically in degrees 1,2, and 3} atlas> {sum of entries = total mult of sigma in reg rep = dim(sigma)} atlas> harm(ct,2) Value: [0,0,1,0,1,0,0] {Roger Zierau question: how do you get cells out of a bunch of parameters?} atlas> set P=all_parameters_gamma(GL(4,R),GL(4,R).rho) Variable P: [Param] atlas> set BC=blocks_and_cells (P) Variable BC: [([Param],[WCell])] atlas> { list of pairs (B_i block, list of cells C_ij inside B_i )}