Subject: Computing rings of invariants From: rusin Date: Nov 24 2001 14:00 (timestamp) To: rusin (once again talking to himself) We seek a presentation of the ring of invariants in A = F[ x1, x2, x3, x4, y1, y2, y3, y4 ] under the diagonal action of Sym(4). A contains an invariant subring B = A^( Sym(4) x Sym(4) ) = F[ s1, s2, s3, s4, t1, t2, t3, t4 ] where the s_i and t_i are the elementary symmetric functions of the x_i and y_i respectively. A is the free module over this ring B, generated by the 24^2 elements x1^i1 x2^i2 x3^i3 x4^i4 y1^j1 y2^j2 y3^j3 y4^j4 where the exponents are arbitrary except i_k < k and j_k < k. The method of finding invariants is easy: they are the same as the image of the averaging map 1/24 sum( sigma(f) ) where f ranges over a basis of A over F, e.g. the monomials above. We expect a rank-24 module to be invariant, and indeed here are 24 invariant generators: take the symmetric averages of these monomials: 1 (1 such) x1^m y1^n where n,m = 1, 2, 3 (9 such) x1^m x2^n y1^m y2^n where 1 <= m <= n <=3 except m=n=3 (5 such) x1^m x2^n y1^k y2^l for (m,n,k,l)=(1,1,2,2),(1,2,1,3),(1,2,2,3),(1,3,2,3) or the same but with the roles of x and y reversed (8 such) x1^1 x2^2 x3^3 y1^1 y2^2 y3^3 (1 such) From this we find the Hilbert series to be (1+t^2+2t^3+4t^4+2t^5+4t^6+...+t^12) (it's symmetric) over ( (t-1)(t^2-1)(t^3-1)(t^4-1) )^4. Since the numerator has no cyclotomic factor, there is no larger subring than B over which the invariant ring is a free module. (I think.) ============================================================================== #Here are some helpful maple routines. N:=4: with(combinat): P:=permute(N): #Take a pair of lists of subscripts and make a monomial in x's and y's mono:=proc(a,b) local i, T; T := 1; for i to nops(a) do T := T*x.(a[i]):od: for i to nops(b) do T := T*y.(b[i]):od: T:end: #compare polynomials deg2:=proc(a) local xx,T,U: xx:=subs({seq(x.i = x.i*T, i = 1 .. 4), seq(y.i = y.i*U, i = 1 .. 4)},a): [degree(xx,T),degree(xx,U)]:end: deg1:=proc(a) local x: x:=deg2(a): x[1]+x[2]: end: #Or use degree(a,x1) for below... # as:=proc(a,b) local aa, bb: aa:=deg2(a):bb:=deg2(b): if aa[1]+aa[2] x_a x_b x_c ... ; repeats OK #These monomials span poly-ring over subring of symmetric polys. U:=[[]]: for k to N-1 do V:=[seq(seq([op(U[i]),seq(k,l=1..j)],i=1..nops(U)),j=1..k),op(U)]; U:=V: od: #Initial set of symmetric polynomials: Z:={}:for u in V do for v in V do w:=symalt(mono(u,v)):Z:={op(Z),w}:od:od: Z2:=sort([op(Z)],as): #Want 24 generators, got 340... #See which of these contribute something possibly new: Z3:=[1]:red:={}: #red = set of reductions modulo the ideals subx, suby for i from 2 to nops(Z2) do xx:=simplify(Z2[i],{op(subx),op(suby)}): if not(xx=0) then xx:=xx/content(xx) : if member(xx,red) or member(-xx,red) then {} else Z3:=[op(Z3),Z2[i]]:red:={op(red),xx}:fi:fi:od: lprint(seq(deg2(Z3[i]),i=1..nops(Z3))); ### for N=3 ### #Very quickly, the 30 elements of Z are sorted and reduced to 6 in Z3: #They are the symmetrized versions of ANS3:=[1, x1*y1, x1*y1^2, x1^2*y1, x1^2*y1^2, x1^2*x2*y1^2*y2] ### for N=4 ### #reductions to make Z3 take a couple of minutes. #Find 28 elements, expected 24. #check those of a given bidegree: reduce mod subx union suby # and spot linear combos. After the fact we find that there should be # only two generators in each bidregree [d,d], d=2, 3, 4. #3 x^2y^2 sum to 0 #4 x^3y^3 have 2 lincombs #3 x^4y^4 have 1 #Example: simplify([Z3[21],Z3[22],Z3[23]], {op(subx),op(suby)}); [seq(coeff(coeff(%[i],y4^3),y3,1), i=1..3)]; simplify([Z3[21]-Z3[22]-Z3[23]], {op(subx),op(suby)}); #get 0. #simplify([Z3[6],Z3[7],Z3[8]], {op(subx),op(suby)}); #simplify([Z3[13],Z3[14],Z3[15],Z3[16]], {op(subx),op(suby)}); #In my example we end up with this ordering: Z4:=[seq(Z3[i],i=1..7), seq(Z3[i],i=9..14), seq(Z3[i],i=17..22), seq(Z3[i],i=24..28)]: Finally! 24 invariants. #Hilbert series: add(X^deg1(Z4[i]),i=1..nops(Z4)); ANS:=[1, x1*y1, x1*y1^2, x1^2*y1, x1*y1^3, x1^2*y1^2, x1*x2*y1*y2, x1^3*y1, x1^2*y1^3, x1^3*y1^2, x1*x2*y1^2*y2^2, x1^3*y1^3, x1*x2^2*y1^2*y2, x1^2*x2^2*y1*y2, x1^2*x2*y1^3*y2, x1^3*x2*y2*y1^2, x1*x2^2*y1^3*y2^2, x1^2*x2^2*y1^2*y2^2, x1^3*x2*y1^3*y2, x1^3*x2^2*y1^2*y2, x1^3*x2*y1^3*y2^2, x1^3*x2^2*y1^3*y2, x1^3*x2^2*y1^3*y2^2, x1^3*x2^2*x3*y1^3*y2^2*y3]: seq(symalt(ANS[i])-Z4[i],i=1..24); #checks! #Except for the last, all involve only x1, x2, y1, y2 to these exponents: 1 [0, 0, 0, 0] 2 [1, 0, 1, 0] 3 [1, 0, 2, 0] 4 [2, 0, 1, 0] 5 [1, 0, 3, 0] 6 [2, 0, 2, 0] 7 [1, 1, 1, 1] 8 [3, 0, 1, 0] 9 [2, 0, 3, 0] 10 [3, 0, 2, 0] 11 [1, 1, 2, 2] 12 [3, 0, 3, 0] 13 [1, 2, 2, 1] 14 [2, 2, 1, 1] 15 [2, 1, 3, 1] 16 [3, 1, 2, 1] 17 [1, 2, 3, 2] 18 [2, 2, 2, 2] 19 [3, 1, 3, 1] 20 [3, 2, 2, 1] 21 [3, 1, 3, 2] 22 [3, 2, 3, 1] 23 [3, 2, 3, 2]