<>
Definition & Example
====================
- A **plane partition** $\Lambda = [\lambda^{(1)},\dots,\lambda^{(k)}]$ is a sequence of [integer partitions](/IntegerPartitions) $\lambda^{(i)}$ such that $\lambda^{(i)} \supseteq \lambda^{(i+1)}$ for all $i$.
- Equivalently, it is an array $\Lambda = [\lambda^{(i)}_j]_{ij}$ of positive integers such that $\lambda^{(i)}_j \geq \lambda^{(i+1)}_j$ and $\lambda^{(i)}_j \geq \lambda^{(i)}_{j+1}$ for all well-defined indices $i,j$.
- $\Lambda$ is a plane partition of $n$, denoted by $\Lambda \vdash n$, if $n = n_1 + \dots + n_k$ for $\lambda^{(i)} \vdash n_i$ being a partition of $n_i$.
<>
- Plane partitions are graphically represented by their [Ferrers](http://en.wikipedia.org/wiki/Norman_Macleod_Ferrers) diagram (or Young diagram) as a collection of boxes.
- The number of plane partitions $P(n)$ is [A000219](http://oeis.org/A000219). Its generating function is $$\displaystyle \sum_{n=0}^\infty P(n) x^n = \prod_{k=1}^\infty \frac{1}{(1-x^k)^k}.$$
Properties
==========
- The number of plane partitions inside an $a\times b\times c$ bounding box is given by [MacMahon](https://en.wikipedia.org/wiki/Percy_Alexander_MacMahon)'s box formula: $$\displaystyle \prod_{i=1}^a \displaystyle \prod_{j=1}^b \displaystyle \prod_{k=1}^c \frac{i+j+k-1}{i+j+k-2}.$$
- There are ten symmetry classes of plane partitions, each of which is enumerated by a nice product formula. These symmetry classes include symmetric, cyclically symmetric, self-complementary, transpose-complementary, and combinations thereof.
References
==========
<>
- [Plane partitions](https://en.wikipedia.org/wiki/Plane_partition) in wikipedia.
Sage examples
=============
{{{#!sagecell
def statistic(P):
return P[0][0]
def PlanePartitionsIter(n, outer=None):
emp = [/ ]
if n == 0:
yield [emp]
return
if outer == emp:
yield []
return
if outer is None:
outer = [n]*n
for k in range(1,n+1):
for L in Partitions(k, outer=outer):
for Pp in PlanePartitionsIter(n-k, outer=L):
Pp = [L] + Pp
yield Pp
def PlanePartitions(n):
for P in PlanePartitionsIter(n):
P = PlanePartition(P[:-1])
yield P
for P in PlanePartitions(4):
print list(P), statistic(P)}}}
Technical information for database usage
========================================
- A plane partition is uniquely represented as a list of lists representing the heights of the rows.
- Plane partitions are graded by the number of boxes of its Ferrers diagram.
- The database contains all integer partitions of size at most 10.