Function Repository Resource:

FranklinBijection

Source Notebook

Map a distinct integer partition into another, reversing the parity of the number of parts, with one exception for each integer

Contributed by: George Beck

ResourceFunction["FranklinBijection"][λ]

maps a distinct partition λ with an odd number of parts into one with an even number of parts and vice versa, except when the weight of λ is a generalized pentagonal number.

Details

A partition of an integer n is a list of weakly decreasing positive integers that add up to n. For instance, these are the five partitions of four: {4},{3,1},{2,2},{2,1,1},{1,1,1,1}.
The weight of a partition is the sum of its parts.
The length of a partition is its number of parts.
In a distinct partition, the parts are different. For example, the four distinct partitions of six are: {6},{5,1},{4,2},{3,2,1}.
A pentagonal number of the first kind is of the form 1/2n(3n-1) for n=0,1,2,. The sequence starts 0,1,5,12,22,. A pentagonal number of the second kind allows n to be negative, giving the sequence 2,7,15,26,. The generalized pentagonal numbers are the union of the two kinds, 0, 1, 2, 5, 7, 12, 15, 22, 26, ….
The exceptional cases for Franklin's bijection are the partitions (written in compact form): ,,,,,,,,,.

Examples

Basic Examples (4) 

Here is a distinct partition with an even number of parts:

In[1]:=
\[Lambda] = {9, 8, 3, 2};

The Franklin bijection maps a distinct partition of even length into one of odd length:

In[2]:=
\[Mu] = ResourceFunction["FranklinBijection"]@\[Lambda]
Out[2]=

FranklinBijection is an involution, meaning applying it twice gives back the original partition:

In[3]:=
ResourceFunction["FranklinBijection"]@%
Out[3]=

For an exception, the Franklin bijection returns the partition unchanged:

In[4]:=
ResourceFunction["FranklinBijection"]@{5, 4, 3}
Out[4]=

Scope (4) 

Show the Ferrers diagram of an integer partition:

In[5]:=
\[Lambda] = {9, 8, 3, 2};
ResourceFunction["FerrersDiagram"]@\[Lambda]
Out[2]=

The way FranklinBijection works can be visualized with a Ferrers–Venn diagram, which overlaps two Ferrers diagrams as if they were a Venn diagram, like in this schematic:

In[6]:=
Graphics[{Circle[{-1/2, 0}, 1], Circle[{1/2, 0}, 1], PointSize[.02], Point@{{-7/8, 0}, {0, 0}}, Circle[{0, 0}, .06], Circle[{7/8, 0}, .06]}]
Out[6]=

Dots in the Ferrers diagram are moved from the diagonal line starting with the largest part to form a new smallest part or vice versa:

In[7]:=
\[Mu] = ResourceFunction["FranklinBijection"]@\[Lambda]
Out[7]=
In[8]:=
ResourceFunction["FerrersVennDiagram"]@{\[Lambda], \[Mu]}
Out[8]=

For weight 13, this shows the bijection between distinct partitions of even and of odd length:

In[9]:=
Grid[{#, ResourceFunction["FranklinBijection"]@#} & /@ Select[IntegerPartitions@
    13, # == DeleteDuplicates@# && EvenQ@Length@# &]]
Out[9]=

Applications (7) 

Define functions for checking whether n is a pentagonal number of the first or the second kind:

In[10]:=
generalizedPentagonal1Q@n_ := Module[{m},
  m = Ceiling@Sqrt[2/3 n];
  n == PolygonalNumber[5, m]]
In[11]:=
generalizedPentagonal2Q@n_ := Module[{m},
  m = Floor@Sqrt[2/3 n];
  n == PolygonalNumber[5, m] + m]

If the weight n of a partition is not a generalized pentagonal number, it is not an exception:

In[12]:=
FranklinException@n_ /; Not[generalizedPentagonal1Q@n || generalizedPentagonal2Q@n] := {};

If n is a generalized pentagonal number, these give the exceptional partition of weight n:

In[13]:=
FranklinException@n_ /; generalizedPentagonal1Q@n := Module[{m = Ceiling@Sqrt[2/3 n]},
  Range[2 m - 1, (2 m - 1) - (m - 1), -1]
  ]
In[14]:=
FranklinException@n_ /; generalizedPentagonal2Q@n := Module[{m = Floor@Sqrt[2/3 n]},
  Range[2 m, 2 m - (m - 1), -1]
  ]

Here are the exceptional partitions up to n=26:

In[15]:=
ex = DeleteCases[FranklinException /@ Range@26, {}]
Out[15]=

Their weights are the generalized pentagonal numbers:

In[16]:=
Total /@ ex
Out[16]=

For the exceptional partitions, it is not possible to get a distinct partition by moving dots as before:

In[17]:=
ResourceFunction["FerrersDiagram"] /@ ex
Out[17]=

The Franklin bijection leaves those partitions fixed:

In[18]:=
ResourceFunction["FranklinBijection"] /@ ex
Out[18]=

Neat Examples (4) 

The bijection gives a combinatorial proof of Euler's pentagonal number theorem: (1-x)(1-x2)(1-x3)=1-x-x2+x5+x7-x12-x15+, where the powers of x in the sum are the generalized pentagonal numbers.

The Wolfram Language is able to evaluate both the infinite product and series:

In[19]:=
Product[1 - x^n, {n, \[Infinity]}]
Out[19]=
In[20]:=
Sum[(-1)^k x^PolygonalNumber[5, k], {k, -\[Infinity], \[Infinity]}]
Out[20]=

Here are the first nine terms:

In[21]:=
Sum[(-1)^k x^PolygonalNumber[5, k], {k, -4, 4}]
Out[21]=

Define the distinct partitions of even and odd length:

In[22]:=
evenDistinct@n_ := Select[IntegerPartitions@
   n, # == DeleteDuplicates@# && EvenQ@Length@# &]
In[23]:=
oddDistinct@n_ := Select[IntegerPartitions@
   n, # == DeleteDuplicates@# && OddQ@Length@# &]

The Franklin bijection matches the distinct partitions of even and odd lengths with one exception, when the weight is a generalized pentagonal number. Note that the powers match the exceptions found in the Applications example:

In[24]:=
Sum[x^n (Length@evenDistinct@n - Length@oddDistinct@n), {n, 0, 26}]
Out[24]=

Publisher

George Beck

Requirements

Wolfram Language 13.0 (December 2021) or above

Version History

  • 1.1.0 – 12 April 2024
  • 1.0.0 – 03 April 2024

Related Resources

License Information