Help24:=proc(): print(` SubL(L), BigRim(L),AllRims(L), Chop(Z),l,Sc1a(x,L,a), Sc1(x,L), Sc2(x,L) `):end: with(linalg): with(combinat): #SubL(L): Given a list of non-neg. integers, finds all the lists L1 such that for all i L1[i]<=L[i] SubL:=proc(L) local i,k,S,s,L1: option remember: k:=nops(L): if k=1 then RETURN({seq([i],i=0..L[1])}): fi: L1:=[op(1..k-1,L)]: S:=SubL(L1): {seq(seq([op(s),i], s in S),i=0..L[k])}: end: #BigRim(L): inputs a partition L and finds the largest rim. Try: #BigRim([3,2]); BigRim:=proc(L) local k,i: k:=nops(L): [seq(L[i]-L[i+1],i=1..k-1),L[k]]: end: #AllRims(L): The set of all rims of shape L AllRims:=proc(L): SubL(BigRim(L)) minus {[0$nops(L)]}: end: #ChopZ(L): kicks all the 0's at the end ChopZ:=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 tableaux of shape L with largest part a Sc1a:=proc(x,L,a) local R,f,L1,f1,i,r,a1,k: option remember: k:=nops(L): if k=1 then if a=1 then RETURN(x[1]^L[1]): elif L[1]=1 then RETURN(x[a]): else RETURN(expand(x[a]*add(Sc1a(x,[L[1]-1],a1),a1=1..a))): fi: fi: f:=0: R:=AllRims(L): for r in R do L1:=ChopZ([seq(L[i]-r[i],i=1..k)]): f1:= add(Sc1a(x,L1,a1),a1=nops(L1)..a-1): f:=expand(f+ f1*x[a]^convert(r,`+`)) : od: f: end: #Sc1(x,L): Schur poly of partition L via tabelaux Sc1:=proc(x,L) local a,k,n: k:=nops(L): n:=convert(L,`+`): add(Sc1a(x,L,a),a=k..n): end: Sc2:=proc(x,L) local L1,k,n,i,j: k:=nops(L): n:=convert(L,`+`): L1:=[op(L),0$(n-k)]: det([seq([seq(hkn(L1[i]-i+j,n,x),j=1..n)],i=1..n)]): end: Conj:=proc(L) local k,C1,i1,L1,i: option remember: if L=[] then RETURN([]): fi: k:=nops(L): L1:=[seq(L[i]-1,i=1..k)]: for i1 from 1 to nops(L1) while L1[i1]>0 do od: i1:=i1-1: L1:=[op(1..i1,L1)]: C1:=Conj(L1): [k,op(C1)]: end: Sc3:=proc(x,L) local L1,k,n,i,j,m: L1:=Conj(L): n:=convert(L,`+`): m:=nops(L1): L1:=[op(L1),0$(n-m)]: det([seq([seq(ekn(L1[i]-i+j,n,x),j=1..n)],i=1..n)]): end: