Ask Your Question
1

Major index of skew-SYT

asked 2019-03-19 13:29:57 +0100

joakim_uhlin gravatar image

updated 2020-06-01 14:41:17 +0100

FrédéricC gravatar image

For a standard Young tableaux (SYT), I can compute the major index as follows:

T = Tableau([[1,2,3],[4,5]])
T.major_index()

Is there a way to compute the major index of a skew-SYT currently? Something like:

S = SkewTableaux().from_expr([[1,1],[[5],[3,4],[1,2]]])
S.major_index()

At the moment, it seems major_index() is not defined for the SkewTableau-class.

EDIT: The major index of a (skew) standard Young tableau $T$, denoted $\mathrm{maj}(T)$, is defined as follows. A descent of $T$ is an entry $i$ such that $i+1$ appears strictly below $i$ in $T$. Define $\mathrm{maj}(T)$ as the sum of all descents of $T$. For example, the major index of the skew standard Young tableau above is $2+4=6$.

FindStat has a definition, although they only define it for non-skew tableau. But the definition extends trivially to skew-shapes as well.

edit retag flag offensive close merge delete

Comments

Can you give a reference to a (mathematical) definition?

rburing gravatar imagerburing ( 2019-03-19 16:25:50 +0100 )edit

Added the definition of major index.

joakim_uhlin gravatar imagejoakim_uhlin ( 2019-03-19 16:36:27 +0100 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2019-11-08 15:28:53 +0100

joakim_uhlin gravatar image

I decided to finally write this myself! Posting here as an answer for anyone that is interested. I decided to use the built-in SemistandardSkewTableaux class instead of the SkewTableaux class as it seems that the latter does not have a ''.list()'' method. It would also be easy to modify this code to make it work on more general skew SSYT.

def des(T):
    out = []
    for i in range(1,T.size()):
        if T.cells_containing(i)[0][0]<T.cells_containing(i+1)[0][0]:
            out += [i]
    return out

def maj(T):
    return sum(des(T))

def majpol(lmbda,mu):
    var('q')
    out = 0
    for T in SemistandardSkewTableaux([lmbda,mu],[1]*(sum(lmbda)-sum(mu))):
        out += q**maj(T)
    return out

So one can write for example

lmbda = [3,2]
mu = [1]
majpol(lmbda,mu)

which outputs

q^4 + q^3 + 2*q^2 + q
edit flag offensive delete link more

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: 2019-03-19 13:29:57 +0100

Seen: 465 times

Last updated: Nov 08 '19