Related Searches
Definitions

# Pentagonal number theorem

In mathematics, the pentagonal number theorem, originally due to Euler, relates the product and series representations of the Euler function. It states that

$prod_\left\{n=1\right\}^infty \left(1-x^n\right)=sum_\left\{k=-infty\right\}^infty\left(-1\right)^kx^\left\{k\left(3k-1\right)/2\right\}.$

In other words,

$\left(1-x\right)\left(1-x^2\right)\left(1-x^3\right) cdots = 1 - x - x^2 + x^5 + x^7 - x^\left\{12\right\} - x^\left\{15\right\} + x^\left\{22\right\} + x^\left\{26\right\} + cdots.$

A striking feature of this expansion is the amount of cancellation in the product. The indices 1, 2, 5, 7, 12, ... appearing on the right hand side are called pentagonal numbers (or more accurately, generalized pentagonal numbers).

If we treat this series as a power series, the radius of convergence is 1. One may also ignore issues of convergence, in which case the theorem holds as a statement about formal power series.

## A combinatorial proof

The theorem can be given a combinatorial interpretation in terms of partitions. In particular, the left hand side is a generating function for the number of partitions of n into an even number of distinct parts minus the number of partitions of n into an odd number of distinct parts. (The article on unrestricted partition functions discusses this type of generating function.)

For example, the x5 coefficient is 1 because of there are two ways to split 5 into an even number of distinct parts (4+1 and 3+2), but only one way to do so for an odd number of distinct parts (5 itself).

This interpretation leads to an elegant proof of the identity via involution. Consider the Ferrers graph of any partition of n into distinct parts. For example, the diagram below shows n = 20 and the partition 20 = 7 + 6 + 4 + 3.

>

Let k be the number of elements in the smallest row of our graph. Let s be the number of elements in the rightmost 45 degree line of our graph (the dots which are red in the above diagram). In the diagram above, s = 2 and k = 3.

If k > s, we take the rightmost 45 degree line and move it to form a new row, as in the graph below.

>

If this is not the case (as in our newly formed graph where k = 2, s = 5) we reverse the process by moving the bottom row to form a new 45 degree line (in effect adding 1 element to each of the first k rows). In our case, this takes us back into the first graph.

A bit of thought shows that in fact applying this process twice brings us back to the original graph and the process always changes the parity of the number of rows. Thus this process (when it can be performed) enables us to pair off the Ferrers' graphs of partitions contributing 1 and -1 to the original sum. Everything cancels, UNLESS there are some cases where our operation cannot be performed. In fact, there are two of them.

1) k = s and the rightmost diagonal and bottom row meet. For example,

>

Attempting to perform the operation would lead us to:

>

which fails to change the parity of the number of rows, and is not reversible in the sense that performing the operation again does not take us back to the original graph. If there are k elements in the last row of the original graph, then

$n=k+\left(k+1\right)+\left(k+2\right)+cdots+\left(2k-1\right)=frac \left\{k\left(3k-1\right)\right\}\left\{2\right\}$

2) k = s+1 and the rightmost diagonal and bottom row meet. For example,

>

Our operation requires us to move the right diagonal to the bottom row, but that would lead to two rows of 3 elements, forbidden since we're counting partitions into distinct parts. This is the previous case but with one fewer row, so

$n=k+\left(k+1\right)+\left(k+2\right)+cdots+\left(2k-2\right)=frac\left\{\left(k-1\right)\left(3k-2\right)\right\}\left\{2\right\} =frac\left\{m\left(3m-1\right)\right\}\left\{2\right\},$

where m=1-k (which is negative).

In summary, we have shown that partitions into an even number of distinct parts and an odd number of distinct parts exactly cancel each other out, except for pentagonal numbers, where there is exactly one case left over (which contributes a factor of (-1)k). But this is precisely what the right side of the identity says should happen, so we are finished.

This gives a beautiful recurrence for calculating $p_n$, the number of partitions of n Partition function (number theory).

$p_n=p_\left\{n-1\right\}+p_\left\{n-2\right\}-p_\left\{n-5\right\}-p_\left\{n-7\right\}+cdots$

or more formally,

$p_n=sum_i \left\{\left(-1\right)^\left\{i-1\right\}p_\left\{n-q_i\right\}\right\}$

where the summation is over all (including negative) i and $q_i$ is the $i^\left\{th\right\}$ pentagonal number calculated as above.

## A proof by bijection

Another way of proving the identity is by observing its implications on certain sets of partitions. Start by noting that $prod_\left\{ninmathbb\left\{N\right\}\right\} \left(1 - x^n\right)$ is the exact inverse (in terms of formal power series) of the well known generating function for the partiton function p(n), $prodlimits_\left\{kinmathbb\left\{N\right\}\right\} \left(1 - x^k\right)^\left\{-1\right\} = sumlimits_\left\{nin mathbb\left\{N\right\}_0\right\} p\left(n\right) x^n$. This means that

$left\left(sum_\left\{n=0\right\}^infty p\left(n\right) x^n right\right) cdot left\left(sum_\left\{n=0\right\}^infty a_n x^n right\right) = 1,$

where an is the coefficient of xn in the expansion of our product. We thus have a0 p(0) = a0 = 1 and $sum_\left\{i=0\right\}^n p\left(n-i\right) a_i = 0$ for all $ngeq 1$ (which, of course, is a recurrence relation that defines the ai uniquely). It is now easy to find an equivalence to our identity in terms of sets of partitions. Indeed, if we are to find

$a_i := begin\left\{cases\right\}1 & mbox\left\{ if \right\} i = frac\left\{1\right\}\left\{2\right\}\left(3k^2 pm k\right) mbox\left\{ and \right\} k mbox\left\{ is even\right\}$
-1 & mbox{ if } i = frac{1}{2}(3k^2 pm k) mbox{ and } k mbox{ is odd } 0 & mbox{ otherwise }end{cases}

for $igeq 1$ (which is what we want to prove), we need, substituting this formula into our above recurrence relation for ai, $sum_i \left(-1\right)^i p\left(n - b_i\right) = 0,$ (n > 0 as before) where $b_i := frac\left\{1\right\}\left\{2\right\}\left(3i^2+i\right)$ and i ranges over all values such that $b_i leq n$ (both positive and negative, as to encompass both kinds of generalized pentagonal numbers). This in turn means that

$sum_\left\{i mbox\left\{ even\right\}\right\} p\left(n - b_i\right) = sum_\left\{i mbox\left\{ odd\right\}\right\} p\left(n - b_i\right),$

which transcribes in terms of sets of partitions as the fact that the sets

$mathcal\left\{X\right\} := bigcup_\left\{i mbox\left\{ even\right\}\right\} mathcal\left\{P\right\}\left(n-b_i\right)$ and $mathcal\left\{Y\right\} := bigcup_\left\{i mbox\left\{ odd\right\}\right\} mathcal\left\{P\right\}\left(n-b_i\right)$

are of equal cardinality (using the same restrictions as before on i and n). All that remains to be done now is finding a bijection from one to the other and it is easy to check that the function φ from X to Y which maps the partition $mathcal\left\{P\right\}\left(n-b_i\right) ni lambda : n-b_i = lambda_1 + lambda_2 + dotsb + lambda_ell$ to the partiton $lambda\text{'} = varphi\left(lambda\right)$ where

$varphi\left(lambda\right) :=$
begin{cases} lambda' : n - b_{i-1} = (ell + 3i -1) + (lambda_1 - 1) + dotsb + (lambda_ell - 1) &mbox{ if } ell+3i geq lambda_1 lambda' : n - b_{i+1} = (lambda_2 + 1) + dotsb + (lambda_ell + 1) + underbrace{1+dotsb+1}_{lambda_1 - ell - 3i - 1} &mbox{ if } ell+3i < lambda_1 end{cases}

is actually an involution (and thus in particular a bijection), which proves our claim and the identity.

## Example program

Here is a simple Python program which computes partitions using the Pentagonal number theorem.

`pentagonal = lambda n : n*(3*n-1)/2`
`def generalised_pentagonal(n): # 0, 1, -1, 2, -2`
`    if n < 0: return 0`
`    if n%2 == 0: return pentagonal(n/2+1)`
`    else: return pentagonal(-(n/2+1))`
`pt = [1]`
`for n in range (1, 1000+1):`
`    r = 0`
`    f = -1`
`    i = 0`
`    while generalised_pentagonal(i) <= n:`
`        k = generalised_pentagonal(i)`
`        if k > n:`
`            break`
`        if i%2==0: f = -f`
`        r += f*pt[n - k]`
`        i += 1`
`    pt.append(r)`
`print pt`