# Major index of skew-SYT

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],[,[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 close merge delete

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

Sort by » oldest newest most voted

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)<T.cells_containing(i+1):
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],*(sum(lmbda)-sum(mu))):
out += q**maj(T)
return out


So one can write for example

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


which outputs

q^4 + q^3 + 2*q^2 + q

more