Loading [MathJax]/jax/output/HTML-CSS/jax.js
Ask Your Question
2

Skew Schur function

asked 2 years ago

Anupamsage gravatar image

I have worked with the Schur function using the following command for example

sage: Sym = SymmetricFunctions(QQ)
sage: P = Sym.p()  # to expand symmetric functions in power symmetric basis
sage: s = Sym.schur()
sage: P(s([2,2]))
1/12*p[1, 1, 1, 1] + 1/4*p[2, 2] + (-1/3)*p[3, 1]

Recently I need to work with the skew Schur function. I want to expand the shifted schur function sλ(x1+y,x2+y,,xn+y) I am guessing that it can be the following identity sλ(x1+y,x2+y,,xn+y)=μsλmu(y)sμ(x1,x2,,xn) For y=1 my idenity can be proven as I am sure there is an expression. The expression sλmu(y) is skew Schur function. I am wondering if there are packages in sagemath where I can work with skew schur function and verify my identity is correct or not.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 2 years ago

dan_fulea gravatar image

I tried the following to check the identity for some specific λ value, say λ=[4,3,2] . Then the L.H.S. in the expression above, sλ(x1+y,x2+y,,xn+y) is computed by the following code:

R.<y> = PolynomialRing(QQ)
Sym = SymmetricFunctions(R)
Sym.inject_shorthands()

lam = Partition([3, 2, 1])
slam6 = s[lam].expand(6)
slam6.parent().inject_variables()     # defining x0, x1, ... , x5 

pol = slam6(*(xj + y for xj in (x0, x1, x2, x3, x4, x5)))
# pol    # decomment to see it

Of course, we want to have it as a Schur function, taken from the above polynomial, yes, it is the following (manually split) expression:

sage: s.from_polynomial(pol)
896*y^6*s[] + 896*y^5*s[1] + 448*y^4*s[1, 1] + 112*y^3*s[1, 1, 1] \
+ 320*y^4*s[2] + 192*y^3*s[2, 1] + 48*y^2*s[2, 1, 1] + 32*y^2*s[2, 2] \
+ 8*y*s[2, 2, 1] + 40*y^3*s[3] + 24*y^2*s[3, 1] + 6*y*s[3, 1, 1] \
+ 4*y*s[3, 2] + s[3, 2, 1]

Let us check the coefficient in μ=[3,1] from the R.H.S. of the claimed identity. We expect 24y2s[3,1] from the above expansion.

mu = Partition([3, 1])
skew = lam / mu
print(f'lam = {lam} , mu = {mu} , s(lam / mu) is {s(skew)}')

This gives

lam = [3, 2, 1] , mu = [3, 1] , s(lam / mu) is s[1, 1] + s[2]

We have to plug in now y in the above Schur polynomial. If my plug in uses the right conventions, then we obtain a different result.

sage: s(skew).expand(6)(y,y,y,y,y,y)
36*y^2
sage: s(skew).expand(1)(y)
y^2

Here are the Schur polynomials for the skew partitions λ/μ for further partitions μ:

for k in [0..6]:
    for mu in Partitions(k):
        if lam.contains(mu):
            print('lam = %s :: mu = %-9s :: s(lam / mu) = %s' % (lam, mu, s(lam/mu)))

This gives:

lam = [3, 2, 1] :: mu = []        :: s(lam / mu) = s[3, 2, 1]
lam = [3, 2, 1] :: mu = [1]       :: s(lam / mu) = s[2, 2, 1] + s[3, 1, 1] + s[3, 2]
lam = [3, 2, 1] :: mu = [2]       :: s(lam / mu) = s[2, 1, 1] + s[2, 2] + s[3, 1]
lam = [3, 2, 1] :: mu = [1, 1]    :: s(lam / mu) = s[2, 1, 1] + s[2, 2] + s[3, 1]
lam = [3, 2, 1] :: mu = [3]       :: s(lam / mu) = s[2, 1]
lam = [3, 2, 1] :: mu = [2, 1]    :: s(lam / mu) = s[1, 1, 1] + 2*s[2, 1] + s[3]
lam = [3, 2, 1] :: mu = [1, 1, 1] :: s(lam / mu) = s[2, 1]
lam = [3, 2, 1] :: mu = [3, 1]    :: s(lam / mu) = s[1, 1] + s[2]
lam = [3, 2, 1] :: mu = [2, 2]    :: s(lam / mu) = s[1, 1] + s[2]
lam = [3, 2, 1] :: mu = [2, 1, 1] :: s(lam / mu) = s[1, 1] + s[2]
lam = [3, 2, 1] :: mu = [3, 2]    :: s(lam / mu) = s[1]
lam = [3, 2, 1] :: mu = [3, 1, 1] :: s(lam / mu) = s[1]
lam = [3, 2, 1] :: mu = [2, 2, 1] :: s(lam / mu) = s[1]
lam = [3, 2, 1] :: mu = [3, 2, 1] :: s(lam / mu) = s[]
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2 years ago

Seen: 346 times

Last updated: May 10 '22