# # A brief demo illustrating how to use the coxeter package # to do calculations with Weyl group characters. # # For simplicity, we'll be using the "Vanilla Edition" of coxeter. # # 1. First, download the package: # # http://www.math.lsa.umich.edu/~jrs/software/coxeter2.4v.txt # # 2. While you are there you might want to visit the home page # and read some of the documentation: # # http://www.math.lsa.umich.edu/~jrs/maple.html#coxeter # # 3. Follow along. Launch Maple in another window, and start entering # the commands listed below (the lines that don't start with '#'). # #----------------------------------------------------------------------- # Load the package read `coxeter2.4v.txt`; withcoxeter(); # The main functions for working with characters: # # class_rep class_size irr_chars cprod # induce perm_char restrict # Give me a list of conjugacy class reps for E6. cc:=class_rep(E6); # Wait a minute. How are the generators numbered? diagram(E6); # Which conjugacy class is w0 in? w0:=longest_elt(E6); w:=class_rep(w0,E6); member(w,cc,'j'),j; # What about the square of the 20th conjugacy class? w:=[op(cc[20]),op(cc[20])]; w2:=class_rep(w,E6); member(w2,cc,'j2'),j2; # What about the sizes of conjugacy classes? class_size(E6); # What's the size of the conjugacy class of w0? class_size(w0,E6); ############## # the character table ct:=irr_chars(E6); ct[1]; ct[2]; ct[25]; # the identity element is always first, so the degree is the # first value listed for each character map( x->x[1], ct); # Irreps of E_n can be distinguished by the triples [N,t,s], # where N=degree, t=trace of a reflection, s=sign of trace of w0 cn:=map( x->[x[1],x[2],sign(x[j])], ct); # Let's compute some scalar products of characters cprod(ct[14],ct[15],E6); cprod(ct[14],ct[14],E6); map( cprod, ct, ct[14], E6); # decompose a tensor product f:=zip( (x,y)->x*y, ct[14],ct[15]); map( cprod, ct, f, E6); # A cool way to get the reflection rep and its exterior powers: f:=map(char_poly, class_rep(E6), E6, -q); map( cprod, ct, f, E6); # Pop Quiz: what is this telling you about Wedge(ref_rep)? # Now let's try working with permutation characters/induction # First, a parabolic quotient f:=perm_char([1,3,4,5,6],E6); map( cprod, ct, f, E6); # an alternative approach: specify a list of simple roots for # the reflection subgroup we are interested in: S2:=subsop(2=NULL, base(E6)); diagram(S2); g:=perm_char(S2,E6); evalb(f=g); # How about inducing the reflection representation? rc:=[seq( coeff(char_poly(w,S2,-q),q), w=class_rep(S2))]; f:=induce(rc, S2, E6); map( cprod, ct, f, E6); # If we remove the forked node (#4) from the extended diagram, we get # a copy of W(A2)^3. What is the corresponding permutation character? r0:=highest_root(E6); S4:=subsop(4=-r0, base(E6)); diagram(S4); g:=perm_char(S4,E6); map( cprod, ct, g, E6); # How about inducing the sign character of W(A2)^3. sc:=map( x->(-1)^nops(x), class_rep(S4)); g:=induce(sc, S4, E6); map( cprod, ct, g, E6); # We can do restrictions as well. f:=restrict(ct[25], S2, E6); map( cprod, irr_chars(S2), f, S2); g:=restrict(ct[24], S4, E6); map( cprod, irr_chars(S4), g, S4);