Computer package for representation theory of the symmetric group

In the years since I left the answer below, Sage has improved dramatically, especially its symmetric function theory. In order to compute the third exterior power of the $S_7$-irrep corresponding to the partition $3+3+1$, one need only type the following:

s = SymmetricFunctions(QQ).schur()
s[1,1,1].inner_plethysm(s[3,3,1])

which returns

s[2, 1, 1, 1, 1, 1] + 2*s[2, 2, 1, 1, 1] + 4*s[2, 2, 2, 1] + 6*s[3, 1, 1, 1, 1] + 9*s[3, 2, 1, 1] + 7*s[3, 2, 2] + 4*s[3, 3, 1] + 7*s[4, 1, 1, 1] + 9*s[4, 2, 1] + 4*s[4, 3] + 2*s[5, 1, 1] + 4*s[5, 2] + s[6, 1] + s[7]

the same answer discovered by the GAP code below. Sage is also faster. From what I understand, GAP still wins when you want to study representations over a finite field. (But it's not really a contest since GAP is included in Sage!) From Sage, you may start a GAP console with

gap_console()

The answer from 2012 appears below.


Here is the GAP code I use to do these computations:

SchurFunctorOfCharacter:=function(char,p)
  local n,t,c;
  if p=[] then
       return TrivialCharacter(UnderlyingCharacterTable(char));
  fi;
  n:=Sum(p);
  t:=CharacterTable("Symmetric",n);
  c:=List(CharacterParameters(t),u->u[2]);
  return Symmetrizations([char],n)[Position(c,p)];
  end;;
CharacterFromPartition:=function(table,p)
  local c;
  c:=List(CharacterParameters(table),u->u[2]);
  return Irr(table)[Position(c,p)];
  end;;
DecomposeCharacter:=char->List(Irr(UnderlyingCharacterTable(char)),x->ScalarProduct(x,char));;
t:=CharacterTable("Symmetric",7);;
chi:=CharacterFromPartition(t,[3,3,1]);;
DecomposeCharacter(SchurFunctorOfCharacter(chi,[1,1,1]));

This code computes the character table of $S_7$, finds the character corresponding to the partition $3+3+1$, and applies the Schur functor corresponding to the partition $1+1+1$ (otherwise known as $\wedge^3$). Here is the result:

[ 0, 1, 2, 4, 6, 9, 7, 4, 7, 9, 4, 2, 4, 1, 1 ]

These are the multiplicities of the irreducible constituents of our character. The ordering on partitions is lexicographic. For example, to determine the meaning of the $6$, just take the fifth partition of $7$:

Partitions(7)[5];

The output shows that the coefficient $6$ appears before the L-shaped partition $3+1+1+1+1$:

[3,1,1,1,1]

If I understand correctly, you can do the computation with symmetric functions using the operation of inner plethysm, which bears the same relationship to the internal, or Kronecker, product on symmetric functions that ordinary plethysm bears to ordinary multiplication of symmetric functions (and also makes the ring of symmetric functions with the internal product into a $\lambda$-ring). Inner plethysm is not as well known as it should be (I don't think it's mentioned in Macdonald's book), but the formulas for computing it aren't complicated:

Using, for simplicity, the notation $f[g]$ for this operation, it's determined by the following:

(1) for fixed $g$, the map $f\mapsto f[g]$ is a homomorphism from the ring of symmetric functions with the usual product to the ring of symmetric functions with the internal product.

(2) For a partition $\lambda$ of $n$ and an integer $k$, let $\lambda^k$ denote the cycle type of the $k$th power of a permutation with cycle type $\lambda$. Then $$ p_k\left[\sum_{\lambda\vdash n}a_{\lambda}\frac{p_{\lambda}}{z_\lambda}\right] =\sum_{\lambda\vdash n}a_{\lambda^k}\frac{p_{\lambda}}{z_\lambda} $$ I don't think that inner plethysm is implemented in John Stembridge's SF package, but it will easily express Schur functions in terms of power sum symmetric functions and vice-versa, and computing inner plethysms with power sum symmetric functions isn't hard; if you know Maple, essentially all you need to do is write a function to compute $\lambda^k$. Then to compute the characteristic of $S_\lambda V$, all you need to do is compute the inner plethysm $s_\lambda[\text{ch } V]$.


The combinatorics package in Sage should do these things, at least if you are just interested in the decompositions into irreducibles and not actual matrices.