#C24.txt Help24:=proc(): print(`Wt(T,x), MaxRims(L), SubSeqs(B), Sc1a(x,L,a) , Sc1(x,L) `): end: read `C23.txt`: #Wt(T,x): The weight of the T x[1]^NumberOfOnes*x[2]^NumberOfTwos... Wt:=proc(T,x) local i,j: mul(mul( x[T[i][j]],j=1..nops(T[i])),i=1..nops(T)): end: #MaxRims(L): inputs a shape (aka partition) and outputs the list of max. rims MaxRims:=proc(L) local k,i: k:=nops(L): [seq(L[i]-L[i+1],i=1..k-1),L[k]]: end: #SubSeqs(B) inputs a list of non-neg. integers b and outputs the set of all #[c1, ..., ck] such that c1<=b1, ..., ck<=bk SubSeqs:=proc(B) local k,B1,S1,i,s1: option remember: k:=nops(B): if k=0 then RETURN({[]}): fi: B1:=[op(1..k-1,B)]: S1:=SubSeqs(B1): {seq(seq([op(s1),i],s1 in S1),i=0..B[k])}: end: #KickZero(L): removes 0 from the end KickZero:=proc(L) local i: for i from 1 to nops(L) while L[i]<>0 do od: [op(1..i-1,L)]: end: #Sc1a(x,L,a): The weight-enumerator of SSYT of shape L with largest entry a Sc1a:=proc(x,L,a) local k, i,MR,R,r,S,L1,a1,f: k:=nops(L): if k=1 then if L[1]=1 then RETURN(x[a]): else RETURN(expand(add(Sc1a(x,[L[1]-1],a1),a1=1..a)*x[a])): fi: fi: MR:=MaxRims(L): R:=SubSeqs(MR) minus {[0$k]}: S:={}: f:=0: for r in R do L1:=[seq(L[i]-r[i],i=1..k)]: L1:=KickZero(L1): f:=expand(f+ (add(Sc1a(x,L1,a1),a1=nops(L1)..a-1))*x[a]^convert(r,`+`)): od: f: end: Sc1:=proc(x,L) local n, a: n:=convert(L,`+`): add(Sc1a(x,L,a),a=nops(L)..n): end: