# Reconstructing a partition from its character

Given a solid partition $\rho=\{\pi_1, \pi_2, ..\}$, where $\pi_a$ are plane partitions such that $\pi_{a+1} \subset \pi_a$, we can compute its character, which is a sum of monomials with non-negative powers of $q_1,..,q_4$. Given the character we can recover the solid partition, in a $1:1$ fashion.The function computing the character is

character[p_, x1_, x2_, x3_, x4_] := Sum[x1^(i - 1) x2^(j - 1) x3^(k - 1) x4^(m - 1), {i, 1, Length[p]}, {j, 1, Length[p[[i]]]}, {k, 1, Length[p[[i, j]]]}, {m, 1, p[[i, j, k]]}]


For example, the character of the partition {{{2}, {1}}} is given by $1 + q_2 + q_4$.

How do I construct a function that, given the character as input, gives as output the solid partition that has such character?

What kglr proposes almost works, for example consider the partition {{{1}}, {{1}}}: it has character 1+x1, and the function toPartition[1+x1] gives back {{{{1}}}, {{{1}}}}. But consider another example: the partition {{{2}}} has character 1+x4, but toPartition[1+x4] gives {{{{1, 1}}}}. There should be a way of eliminating the innermost nesting level by summing over its entries, somehow.

I now believe that Total[CoefficientList[c_, {x1, x2, x3, x4}], {-1}] does the job.

• perhaps toPartition[c_] := List /@ Total /@ CoefficientList[c, {x2, x4}]? – kglr May 10 '18 at 1:21
• is {0} allowed as a member of $\rho$? – kglr May 10 '18 at 1:29
• @kglr if you want, we define the empty partition to have character zero. The partition with one box {{{1}}} has character 1. – jj_p May 10 '18 at 1:32
• @kglr if a certain $\pi_a=0$ we just don't write it, as all the following are zero as well – jj_p May 10 '18 at 1:36
• jj_p, it seems List /@ Total /@ CoefficientList[c, Variables[c]] works for all cases except where the last entry is {0} , can you please check? – kglr May 10 '18 at 1:40