[Davids-MBP-100:~/math/atlasofliegroupsCOMMONDAVID/atlas-scripts] dav% ../atlas all This is 'atlas' (version 1.0.7, axis language version 0.9.9), the Atlas of Lie Groups and Representations interpreter, compiled on Mar 31 2020 at 18:50:54. http://www.liegroups.org/ {This is a private version of atlas, that prints (during an "is_unitary" calculation") a running tally of blocks created, number of [translation families] of reps considered (that's mod_pool) and number of deformation-to-zero formulas recorded} atlas> is_unitary(SL(8,R).trivial) Value: true #blocks = 447 #pool = 431 #mod_pool = 42675 #def_forms = 431 {blocks: number of blocks of reps appearing in calc mod_pool: big set of parameters needed def_forms: formulas for writing signature on a parameter using tempered's This is Marc van Leeuwen's new code on git branch "common_blocks"} {Here's the same thing in the old code} atlas> is_unitary(SL(8,R).trivial) Value: true #blocks = 1734 #param_table = 56764 {old code; branch "master" (hope you're running this!) constructed 1800 blocks, computed KL polys for each... NEW code uses JANTZEN-ZUCKERMAN TRANSLATION PRINCIPLE atlas language: KL polys for parameter (KGBElt x, lambda, nu) are SAME as for any parameter (KGBElt x, lambda + mu, nu + mu) as long as mu in X^*(T) (INTEGER VECTOR), "same Weyl chamber")} OLD code: sees parameter(Sp(2,R),10,[2,1],[7/2,5/2]) ---> computes block, KL polys. Sees parameter(Sp(2,R),10,[5,2],13/2,7/2]) ---> computes NEW block, new KL polys} NEW code: recognizes the blocks are isomorphic, same KL polys; only records block ONCE, keeps one set of KL polys} atlas> set p=Sp(2,R).trivial Variable p: Param atlas> p Value: final parameter(x=2,lambda=[1]/1,nu=[1]/1) atlas> set p=Sp(4,R).trivial Variable p: Param (overriding previous instance, which had type Param) atlas> p Value: final parameter(x=10,lambda=[2,1]/1,nu=[2,1]/1) atlas> set q=parameter(Sp(4,R),10,[5,2],[5,2]) Variable q: Param {I TRANSLATED every vector by [3,1]} atlas> p.character_formula Value: #blocks = 1 #pool = 0 #mod_pool = 12 #def_forms = 0 1*parameter(x=10,lambda=[2,1]/1,nu=[2,1]/1) [0] -1*parameter(x=9,lambda=[2,1]/1,nu=[3,3]/2) [2] -1*parameter(x=8,lambda=[2,1]/1,nu=[2,0]/1) [3] -1*parameter(x=7,lambda=[2,1]/1,nu=[2,0]/1) [3] 1*parameter(x=6,lambda=[2,1]/1,nu=[0,1]/1) [6] 1*parameter(x=5,lambda=[2,1]/1,nu=[0,1]/1) [6] 1*parameter(x=4,lambda=[2,1]/1,nu=[1,-1]/2) [6] -1*parameter(x=3,lambda=[2,1]/1,nu=[0,0]/1) [7] -1*parameter(x=2,lambda=[2,1]/1,nu=[0,0]/1) [7] -1*parameter(x=1,lambda=[2,1]/1,nu=[0,0]/1) [7] -1*parameter(x=0,lambda=[2,1]/1,nu=[0,0]/1) [7] atlas> q.character_formula Value: 1*parameter(x=10,lambda=[3,2]/1,nu=[5,2]/1) [0] -1*parameter(x=9,lambda=[3,0]/1,nu=[7,7]/2) [6] -1*parameter(x=8,lambda=[3,2]/1,nu=[5,0]/1) [6] -1*parameter(x=7,lambda=[3,2]/1,nu=[5,0]/1) [6] 1*parameter(x=4,lambda=[4,3]/1,nu=[3,-3]/2) [14] 1*parameter(x=6,lambda=[5,2]/1,nu=[0,2]/1) [15] 1*parameter(x=5,lambda=[5,2]/1,nu=[0,2]/1) [15] -1*parameter(x=3,lambda=[5,2]/1,nu=[0,0]/1) [17] -1*parameter(x=2,lambda=[5,2]/1,nu=[0,0]/1) [17] -1*parameter(x=1,lambda=[5,2]/1,nu=[0,0]/1) [17] -1*parameter(x=0,lambda=[5,2]/1,nu=[0,0]/1) [17] {KL calculations for p and q are identical! But unitarity is more complicated...} atlas> is_unitary(p) Value: true #blocks = 3 #pool = 6 #mod_pool = 18 #def_forms = 6 atlas> is_unitary(q) Value: false#blocks = 10 #pool = 20 #mod_pool = 41 #def_forms = 20 atlas> dimension(q) Value: 35 atlas> dimension(p) Value: 1 atlas> q Value: final parameter(x=10,lambda=[3,2]/1,nu=[5,2]/1) atlas> p Value: final parameter(x=10,lambda=[2,1]/1,nu=[2,1]/1) atlas> p.infinitesimal_character Value: [ 2, 1 ]/1 atlas> q.infinitesimal_character Value: [ 5, 2 ]/1 {p is SMALLER in infinitesimal character: BETTER CHANCE TO BE UNITARY signature divides space into "positive" and "negative" "subspaces" small infl char implies small dimension; 1 doesn't divide up.} ^^^^ AND NOW FOR SOMETHING COMPLETELY DIFFERENT... Arthur representations!} [Davids-MBP-100:~/math/atlasofliegroupsUNIPOTENT/atlas-scripts] dav% ../atlas all Switched to the "unipotent" branch of the software. The commands I'll show are present in the "master" branch; you may need to update your software. Here's how. Go to the directory where the atlas executable lives... [Davids-MBP-100:~] dav% cd math/atlasofliegroupsMASTER [Davids-MBP-100:~/math/atlasofliegroupsMASTER] dav% git pull origin git will respond with a bunch of messages like remote: Enumerating objects: 22, done. remote: Counting objects: 100% (22/22), done. remote: Compressing objects: 100% (14/14), done. remote: Total 22 (delta 12), reused 18 (delta 8), pack-reused 0 ... Fast-forward atlas-scripts/nilpotent_centralizer.at | 11 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) ... When it's done, type Davids-MBP-100:~/math/atlasofliegroupsMASTER] dav% make verbose=true optimize=true make will respond either with make: Nothing to be done for `all'. (if only scripts were updated, not source code) or with a LONG series of messages about compiling many files. When it's done, you can run your up-to-date atlas as usual! [Davids-MBP-100:~/math/atlasofliegroupsCOMMONDAVID/atlas-scripts] dav% cd ../../atlasofliegroupsUNIPOTENT [Davids-MBP-100:~/math/atlasofliegroupsUNIPOTENT] dav% cd atlas-scripts/ This is 'atlas' (version 1.0.7, axis language version 0.9.9), the Atlas of Lie Groups and Representations interpreter, compiled on Mar 18 2020 at 08:53:07. http://www.liegroups.org/ atlas> set G=SL(2,R) Variable G: RealForm atlas> set wp = weak_packets(G) {this asks it to find all the representations in all the Arthur packets for G} Computing weak packets for 2 dual orbits of connected split real group with Lie algebra 'sl(2,R)' Orbit by diagram: (simply connected root datum of Lie type 'A1',(),[ 1 ]) Computing weak packet for orbit: adjoint root datum of Lie type 'A1' [ 0 ] dim=0 Computing weak packets for connected split real group with Lie algebra 'sl(2,R)' gamma:[ 2 ]/1 gamma_final:[ 0 ]/1 integral data: st_int rd_int:simply connected root datum of Lie type 'A1' st_int.rd: simply connected root datum of Lie type 'A1' O_check_int:(adjoint root datum of Lie type 'A1',(),[ 0 ]) permutation: | 1 | computing packet for:(adjoint root datum of Lie type 'A1',(),[ 0 ]) computing springer map of[2] O: (simply connected root datum of Lie type 'A1',(),[ 1 ]) survive:final parameter(x=2,lambda=[1]/1,nu=[2]/1) [ 0 ]/1 cell character: 1 springer_O:1 survive:final parameter(x=0,lambda=[2]/1,nu=[0]/1) [ 0 ]/1 cell character: 1 springer_O:1 survive:final parameter(x=1,lambda=[2]/1,nu=[0]/1) [ 0 ]/1 cell character: 1 springer_O:1 Orbit by diagram: (simply connected root datum of Lie type 'A1',(),[ 0 ]) Computing weak packet for orbit: adjoint root datum of Lie type 'A1' [ 2 ] dim=2 Computing weak packets for connected split real group with Lie algebra 'sl(2,R)' gamma:[ 3 ]/1 gamma_final:[ 1 ]/1 integral data: st_int rd_int:simply connected root datum of Lie type 'A1' st_int.rd: simply connected root datum of Lie type 'A1' O_check_int:(adjoint root datum of Lie type 'A1',(),[ 2 ]) permutation: | 1 | computing packet for:(adjoint root datum of Lie type 'A1',(),[ 2 ]) computing springer map of[0] O: (simply connected root datum of Lie type 'A1',(),[ 0 ]) survive:final parameter(x=0,lambda=[3]/1,nu=[0]/1) [ 1 ]/1 survive:final parameter(x=1,lambda=[3]/1,nu=[0]/1) [ 1 ]/1 survive:final parameter(x=2,lambda=[1]/1,nu=[3]/1) [ 1 ]/1 cell character: 0 springer_O:0 survive:final parameter(x=2,lambda=[2]/1,nu=[3]/1) [ 1 ]/1 Variable wp: [([([Param],[WCell])],[(int,int,Param)])] {Once the computation is done, show(wp) is a nice display of the results} atlas> show(wp) *: dual(cell) contains an Aq(lambda) orbit# block# cell# parameters 0 0 0* 1 0 1 0* 1 0 1 1* 1 1 0 2* 1 Total 4 atlas> show_long (wp) *: dual(cell) contains an Aq(lambda) *: dual(p) is an Aq(lambda) orbit# block# cell# parameters inf. char. 0 0 0* final parameter(x=2,lambda=[1]/1,nu=[0]/1)* [ 0 ]/1 0 1 0* final parameter(x=0,lambda=[0]/1,nu=[0]/1)* [ 0 ]/1 0 1 1* final parameter(x=1,lambda=[0]/1,nu=[0]/1)* [ 0 ]/1 1 0 2* final parameter(x=2,lambda=[1]/1,nu=[1]/1)* [ 1 ]/1 Total 4 atlas> {"orbits" are nilpotent orbits in complex dual group PGL(2,C):} atlas> {#0 = zero orbit, #1 = principal orbit} atlas> {ARTHUR 1980s: orbit Ovee in dual group ---> infl char for lambdaO} atlas> {for G; ---> SMALLEST reps of G with infl char lambdaO} atlas> {"weak Arthur packet": supposed to be unitary, supposed to appear} atlas> { in automorphic forms} atlas> trivial(SL(2,R)) Value: final parameter(x=2,lambda=[1]/1,nu=[1]/1) Here's the same calculation for Sp(4,R) atlas> set wp=weak_packets(Sp(4,R)) LOTS of progress messages... Computing weak packets for 4 dual orbits of connected split real group with Lie algebra 'sp(4,R)' Orbit by diagram: (simply connected root datum of Lie type 'C2',(),[ 3, 1 ]) ... survive:final parameter(x=10,lambda=[3,1]/1,nu=[6,3]/1) [ 2, 1 ]/1 survive:final parameter(x=10,lambda=[2,2]/1,nu=[6,3]/1) [ 2, 1 ]/1 Variable wp: [([([Param],[WCell])],[(int,int,Param)])] (overriding previous instance, which had type [([([Param],[WCell])],[(int,int,Param)])]) atlas> show_long (wp) *: dual(cell) contains an Aq(lambda) *: dual(p) is an Aq(lambda) orbit# block# cell# parameters inf. char. 0 0 0* final parameter(x=10,lambda=[2,1]/1,nu=[0,0]/1)* [ 0, 0 ]/1 0 1 0* final parameter(x=0,lambda=[0,0]/1,nu=[0,0]/1)* [ 0, 0 ]/1 0 1 1* final parameter(x=1,lambda=[0,0]/1,nu=[0,0]/1)* [ 0, 0 ]/1 0 2 0* final parameter(x=5,lambda=[0,1]/1,nu=[0,0]/1)* [ 0, 0 ]/1 0 2 1* final parameter(x=6,lambda=[0,1]/1,nu=[0,0]/1)* [ 0, 0 ]/1 1 0 1* final parameter(x=10,lambda=[2,1]/1,nu=[1,1]/2) [ 1, 1 ]/2 1 0 2* final parameter(x=10,lambda=[3,2]/1,nu=[1,1]/2) [ 1, 1 ]/2 2 0 2* final parameter(x=2,lambda=[1,0]/1,nu=[0,0]/1) [ 1, 0 ]/1 2 0 2* final parameter(x=7,lambda=[3,0]/1,nu=[1,0]/1)* [ 1, 0 ]/1 2 0 3* final parameter(x=3,lambda=[1,0]/1,nu=[0,0]/1) [ 1, 0 ]/1 2 0 3* final parameter(x=8,lambda=[3,0]/1,nu=[1,0]/1)* [ 1, 0 ]/1 2 0 4* final parameter(x=4,lambda=[1,0]/1,nu=[1,-1]/2) [ 1, 0 ]/1 2 0 4* final parameter(x=10,lambda=[2,1]/1,nu=[1,0]/1)* [ 1, 0 ]/1 2 2 2* final parameter(x=7,lambda=[2,0]/1,nu=[1,0]/1)* [ 1, 0 ]/1 2 2 2* final parameter(x=8,lambda=[2,0]/1,nu=[1,0]/1)* [ 1, 0 ]/1 3 0 5* final parameter(x=10,lambda=[2,1]/1,nu=[2,1]/1)* [ 2, 1 ]/1 Total 16