#Initialization: Loading coxeter/weyl and chow packages; restart; curdir:="/data/maple/": # path to package files read(cat(curdir,"coxeter2.4v.txt")): with(coxeter):with(weyl): read(cat(curdir,"chowring.v1.0.txt")); # chowring package # diagram(R) returns the simple roots of the root system R; # Use this function to see the enumeration of simple roots; diagram(E7); # chow_generators(J, R, n) returns a list of all standard generators # of CH^n(R/J) as elements w of the Weyl group. # J a parabolic subgroup, R a root system; chow_generators([1,2,3,4,5,6],E7,9); # chow_expand(J,R,e) computes expression e in the Chow ring of R/J # in terms of the standard generators of CH(R/J); # Format for the standard generators: Z[w], where # w is provided by the function chow_generators; the codimension of Z[w] # equals the length of w; chow_expand([1,2,3,4,5,6],E7,Z[6, 5, 4, 2, 3, 4, 5, 6, 7]*Z[7]^9); # chern_class(J,R,n) returns the n-th Chern class of the tangent bundle of R/J; chern_class([1,2,3,4,5,6],E7,4); # steenrod(J,R,p,k,u) returns the k-th cohomological Steenrod operation # of a standard generator u in the Chow ring of R/J modulo p; steenrod([1,2,3,4,5,6],E7,2,1,Z[7]); # subs(op(generate_common_table(J,R)[2][i]),get_generator2(J,R,j)) computes the image # of i_w for the equivariant Chow ring of R/J, where j is the number of a generator # (between 1 and |W/W_J|) and i is the number (also between 1 and |W/W_J|) of w. subs(op(generate_common_table([1],G2)[2][i]),get_generator2([1],G2,j)); # pushforward(J1,J2,R,Z) computes push-forward from R/J1 to R/J2 of the cycle Z. pushforward([],[1],A2,Z[2,1]); # Output: Z[2] # prodbases(J1,J2,R) computes the Brosnan-Chernousov-Gille-Merkurjev decomposition # of R/J2, if the anisotropic kernel of the respective group has type J1 prodbases([2,3,4,5],[2,3,4,5,6],E6); # Decomposes (the motive) E6/P1 (P1 is a maximal parabolic subgroup of type 1) # when the vertices 1 and 6 in the Tits index are circled. # Output: [[[[2, 3, 4, 5], []], [[2, 4, 5], [1]], [[3, 4, 5], [6, 5, 4, 3, 1]], [[2, 3, 4, 5], [1, 3, 4, 2, 5, 4, 3, 1]], [[2, 3, 4], [1, 3, 4, 2, 6, 5, 4, 3, 1]], [[2, 3, 4, 5], [6, 5, 4, 2, 3, 1, 4, 3, 5, 4, 2, 6, 5, 4, 3, 1]]] # List of pairs, where the first element of a pair is a base of the # decomposition and the second elements of a pair is the representative # of the respective double coset of minimal length (his length is the shift in the decomposition). # In this example: M(E6/P1)=M(D4/D4)(0)+M(D4/P3)(1)+M(D4/P2)(5)+M(D4/D4)(8)+M(D4/P1)(9)+M(D4/D4)(27), # where D4=[2,3,4,5] (E6 with vertices 1 and 6 removed). # prodbases(J1,J2,R) computes Chernousov-Merkurjev decomposition of the product R/J1xR/J2. prodbases([1,2,3,4,5],[2,3,4,5,6],E6); # Output: # [[[2, 3, 4, 5], []], [[1, 2, 4, 5], [1, 3, 4, 5, 6]], [[1, 2, 3, 4, 5], # [1, 3, 4, 2, 5, 4, 3, 1, 6, 5, 4, 2, 3, 4, 5, 6]]] # # In this example: M(E6/P6\times E6/P1)=M(E6/P_{1,6})(0)+M(E6/P_{3,6})(5)+M(E6/P6)(16) # Lengths of the second elements of pairs are shifts in the decomposition. # prodimage(J1,J2,R,F,S) computes the image of S corresponding to the summand F in the product R/J1xR/J2 # in the Chernousov-Merkurjev decomposition. prodbases([1,2],[1,2],B3); # Output: # [[[1, 2], []], [[1], [3]], [[1, 2], [3, 2, 1, 2, 3]]] prodimage([1,2],[1,2],B3,[3],[3,2,1,2]); # Output: [[Z[2,1,2,3], Z[3]], [Z[1,2,3], Z[2,3]], [Z[2,3], Z[1,2,3]], [Z[3], Z[2,1,2,3]] # This is the image of Z[3,2,1,2] of the summand corresponding to [3] in the product B3/[1,2]xB3/[1,2] # (the enumeration of simple roots follows Stembridge). # my_cartan_matrix(R) computes the Cartan matrix of the root system R print(my_cartan_matrix(F4)); # my_longest_elt(R) computes the longest element in the Weyl group of type R my_longest_elt(D4); # Output: [1, 2, 3, 1, 2, 3, 4, 3, 1, 2, 3, 4] # my_longest_elt2(J,R) computes the longest element in the Weyl group W_J my_longest_elt2([1,2,3],F4); # Output: [1, 2, 1, 3, 2, 1, 3, 2, 3] # my_pos_roots(R) computes all positive roots in the root system R and their expressions in fundamental # weights and their coordinates in simple roots my_pos_roots(A2); # Output: [[2*omega[1]-omega[2], omega[1]+omega[2], -omega[1]+2*omega[2]], [-omega[1]+2*omega[2], -omega[1]-omega[2], 2*omega[1]-omega[2]], [[1, 0], [1, 1], [0, 1]], [1, 1, 1]] # chow_dual(J,R,w) computes the Poincare dual of w in the Chow ring of R/J chow_dual([1,2,3],F4,Z[2,3,4,3,2,1,3,2,3,4]); # Output: [1, 3, 2, 3, 4] # c_func(J,R,pol) computes the image of the polynomial pol in fundamental weights (omega[i]) under the characteristic map c # from the symmetric algebra of the characters of a torus to CH(R/J) c_func([1,2,3],F4,omega[4]^4); # Output: 4*Z[1, 2, 3, 4]+2*Z[3, 2, 3, 4] # deg_fundam_invariant(R,k) computes the degree of the k-th fundamental polynomial invariant for a group of type R deg_fundam_invariant(E6,2); # Output: 5 # fundam_invariant(R,Ord,R2,k) computes the k-th fundamental polynomial invariant of the Weyl group of type R # embedded into the Weyl group of type R2. Ord gives the mapping from the simple roots of R to simple roots of R2 fundam_invariant(B3,[1,2,3],B3,2); # Output: (2*omega[1]-omega[2])^4+(-omega[3]+omega[2])^4+omega[3]^4 # This is the usual second polynomial invariant for the Weyl group of type B3 fundam_invariant(C3,[3,2,1],F4,1); # Output: (-omega[2]+omega[3]-(1/2)*omega[4])^2+(omega[2]-(1/2)*omega[4]-omega[1])^2+(-(1/2)*omega[4]+omega[1])^2 # This is the first polynomial invariant for the Weyl group C3 embedded into F4 on roots 3,2,1 # (the order of roots is important). Use diagram(C3) and diagram(F4) to see the enumeration of simple roots.