---
format:
  html:
    html-math-method: katex
jupyter: python3
---

<style>
.quarto-uncaptioned {
  display: none
}
</style>


12 Pentagons, Part 2
====================

This is the second part in an investigation into answering the following question:

> A soccer ball is a (roughly spherical) figure made of pentagons and hexagons, each meeting 3 at a point. [T]here are 12 pentagons...how many hexagons can there be?

The [post prior to this one]() proved the 12 pentagons portion as well as outlined an entire solution class: (dodecahedral) Goldberg polyhedra. However, there exist more obscure solutions missed by this construction.


Twelve is Four Triples
----------------------

A key characteristic of the solution polyhedra is that each vertex is of degree three. It would be extraordinarily convenient if The post prior to this one proved the 12 pentagons portion as well as outlined an entire solution class: (dodecahedral) Goldberg polyhedra. However, there exist more obscure solutions missed by this construction.three pentagons came together at a vertex, or in the parlance of the previous post, a $V_3$. There are four triples, so there are four vertices. Fortunately, there exists a Platonic solid with four vertices whose symmetries we can exploit: the tetrahedron.


### Extended Goldberg Polyhedra

The tetrahedron's vertex configuration ($3V = 2E$) qualifies it to undergo Goldberg construction. Recall the triangular plane and hexagonal paths from the previous part (presented again here for convenience)

::: {}
![]()
:::

Instead of the red, green, and blue triangles being part of a larger pentagon, they can also be considered as whole triangles with a sector on each edge. Supposing a tetrahedron is made into a Goldberg polyhedron, where does that get us? Well for starters, we know there are:

$$
\begin{gather*}
{\|a +bu\| – 1 \over 6} \scriptsize {\text{hexagons} \over \text{sector}} \normalsize \cdot 3 \scriptsize {\text{sectors} \over \text{triangle}} \normalsize \cdot 4 \scriptsize \text{ triangles} \normalsize \\ \\
= 2(\|a +bu\| – 1) \text{ hexagons}
\end{gather*}
$$

Next, cap each triangular face by extending the non-coplanar edges into a vertex. This transforms the 3 hexagons around each of the 4 triangles into pentagons. There are now 12 pentagons and $2(\|a +bu\| – 1) - 12 = 2\|a +bu\| – 14$ hexagons. This is a sort of "antitruncation", since the process in reverse is truncation. Rather than selecting for the degree, this type of truncation selects for the vertex configuration: that of having three pentagons meeting at it.


### Problems and Solutions

There is a slight problem with the expression for the number of hexagons: the norms of (1, 0), (1, 1), (2, 0), and (2, 1) are all less than or equal to 7. This is because the antitruncations correspond to one of the three Platonic solids with 3 faces to an vertex:

::: {}
![]()
(1, 0): T
Antitruncation: dT = T
:::

::: {}
![]()
(1, 1): tT
Antitruncation: T
:::

::: {}
![]()
(2, 0): cT
Antitruncation: C
:::

::: {}
![]()
(2, 1): wT
Antitruncation: D
:::

With these exceptional cases taken care of, the table of solution polyhedra of this form is as follows:

```{python}
#| label: tbl-antitruncation
#| echo: false

from IPython.display import Markdown
from tabulate import tabulate

polyhedronisme = lambda x, y: f"[{x}](https://levskaya.github.io/polyhedronisme/?recipe={y})"

class1 = [
  ["(1, 0)", polyhedronisme("T", "T"), -12, "-", "-", polyhedronisme("dT", "dT")],
  ["(2, 0)", polyhedronisme("cT", "K300cT"), -6, "-", "-", polyhedronisme("C", "C")],
  ["(3, 0)", polyhedronisme("du3T = tkT", "K300tkT"), 4, 28, 42, polyhedronisme("t6kT", "K300t6kT")],
  ["(4, 0)", polyhedronisme("duuT = ccT", "K300duC30uT"), 18, 56, 84, polyhedronisme("t6juT", "C300t6juT")],
  ["(5, 0)", polyhedronisme("du5T", "K300duC30uT"), 36, 92, 138, "**"],
  ["(6, 0)", polyhedronisme("duu3T = ctkT", "K300duK300dtkT"), 58, 136, 204, polyhedronisme("t6kcT", "K300t6kcT")],
]
class2 = [
  ["(1, 1)", polyhedronisme("tT", "T"), -8, "-", "-", polyhedronisme("T", "T")],
  ["(2, 2)", polyhedronisme("ctT", "K300duK30dtT"), 10, 40, 60, polyhedronisme("t6uT", "K300t6uT")],
  ["(3, 3)", polyhedronisme("tktT", "K300tktT"), 40, 100, 150, polyhedronisme("t6ktT", "K30t6ktT")],
  ["(4, 4)", polyhedronisme("cctT", "K300duC30uT"), 82, 184, 276, polyhedronisme("t6uuT", "K300t6uK30dK30duT")],
]
class3 = [
  ["(2, 1)", polyhedronisme("wT", "K300wT"), 0, "-", "-", polyhedronisme("D", "D")],
  ["(3, 1)", "*", 12, 44, 66, "*"],
  ["(3, 2)", "*", 24, 48, 102, "*"],
  ["(4, 1)", polyhedronisme("wtT", "K300wK30tT"), 28, 76, 114, polyhedronisme("t6gtT", "K300t6gK30tT")],
  ["(4, 2)", polyhedronisme("wcT", "K300wK30cT"), 42, 104, 156, polyhedronisme("t6guT = t6gcT", "K300t6gK30cT")],
]

Markdown(tabulate(
  [
    [class_name if i == 0 else ""] + row
    for class_, class_name in zip([class1, class2, class3], ["I", "II", "III"])
    for i, row in enumerate(class_)
  ],
  headers=["Class","Tuple", "Conway", "$F_6$", "V", "E", "Conway"],
  numalign="center",
  stralign="center",
))
```
::: {}
\* higher-order whirl needed

\*\* Unknown. Possibly nonexistent under standard operators
:::

Note that the links in the above table may have recipes do not match their entry. Rather, the recipe is equivalent to the simpler string given to ensure the viewer can stably generate the output shape. The operators g and j, which I did not introduce previously, were also used; rather than explaining their intuitive meaning, see [the Wikipedia article](https://en.wikipedia.org/wiki/Conway_polyhedron_notation) instead.

The smallest "real" tetrahedral solution has 4 hexagonal faces. This is the [(order-6) truncated triakis tetrahedron](https://en.wikipedia.org/wiki/Truncated_triakis_tetrahedron), which can be discerned by reading its Conway notation. The $V_3$s are arranged on the faces of a tetrahedron owing to the construction, and the hexagons are arranged on the vertices. Alternatively, on the dual to this imaginary tetrahedron, the faces map to faces and the vertices to vertices.

::: {}
![]()
Truncated triakis tetrahedron, t6kT
:::

It can be observed that higher-order class I polyhedra expand these hexagons into larger hexagons as in the centered hexagonal numbers. Similarly, higher-order class II polyhedra form triples of triangular numbers. Other figures made of hexagons with triangular symmetry fall under class III.


### Solution Non-Exclusivity

Is it possible for any of these tetrahedral Goldberg solutions to also be dodecahedral Goldberg solutions? For this to be the case,

$$
\begin{align*}
2\|m + nu\| - 14 &= 10\|a + bu\| - 10 \\
\|m + nu\| - 2 &= 5\|a + bu\|, \text{ for } a, b, m, n \in \mathbb{Z} \\
\|m + nu\| &\equiv 2\ (\text{mod } 5)
\end{align*}
$$

Class I tetrahedral antitruncations have a norm which is a square number, but 2 is not among the squares mod 5, so they will never intersect dodecahedral solutions. However, class II and III solutions congruent to (2, 2) or (3, 3) (mod 5) have the correct multiplicity, the former of which is reflected in the solution table above. Class II solutions turn out to be a red herring, since $5\|a, b\|$ is never congruent to 1 (= -2, mod 3). Only tetrahedral class III collisions exist, either congruent to the pairs above or to (1, 2), (2, 1), (3, 4), or (4, 3) (mod 5). The equivalent pairs for the first few solution parameters are:

 Dodecahedral Parameter | Tetrahedral Parameter | $F_6$
------------------------|-----------------------|-------
(1, 0)                  | (2, 1)                | 0
(2, 1)                  | (4, 3)                | 60
(3, 1)                  | (7, 2)                | 120
(3, 2)                  | (8, 3)                | 180
(5, 0)                  | (7, 6)                | 240
(5, 1)                  | (12, 1)               | 300
(6, 1)                  | (9, 8) <br> (13, 3)   | 420
(5, 3) <br> (7, 0)      | (11, 7) <br> (14, 3)  | 480
(17, 1)                 | (17, 1)               | 600


Twelve is Six Pairs
-------------------

The truncated triakis tetrahedron also reveals another possible set of solution polyhedra: those formed by maintaining six $E_2$s rather than four $V_3$s. By no small coincidence, the tetrahedron has six edges onto which these edges can be arranged. Unfortunately, this selective edge preservation makes it difficult to write solution polyhedra in Conway notation using the standard operators.

It is easiest to see solutions take form on a tetrahedral net. Every face and every vertex of a tetrahedron must be invariant under thirds of a turn, so the shape of the tiling of hexagons at these objects on the net must also be symmetric. Since each face of a tetrahedron is a triangle, arguably the simplest solution is by arranging hexagons in the same way.

:::: {}
::: {}
![]()
Order-2 solution on tetrahedral net (faces separated by interior dotted lines) with identical points identified (exterior dotted lines).
:::

::: {}
![]()
Equivalent planar graph. External face is colored blue.
:::

Pairs of pentagons (green) at the center of every edge. Hexagons symmetric about a face are colored red, those symmetric about a vertex are colored blue.
::::

Though it first appears as if the figure made by the face hexagons and the vertex hexagons (see footnote above) is the same, recall that the base case (truncated triakis tetrahedron) has no face hexagons and a hexagon at each vertex. The pattern does not become clearer until examining larger graphs. Let the even triangular numbers be formed at the center of the figure, so that the pentagons meet at the midpoint of the figure. Then the next-highest order net looks like this

:::: {}
::: {}
![]()
Order-3 solution on tetrahedral net with identical points identified.
:::

::: {}
![]()
Equivalent planar graph. In this diagram, certain elements have been recolored from the diagram to the left to better indicate membership
:::
::::

Much like Goldberg polyhedra, it is easier to understand these figures if they are parameterized by a path between pentagons on a face (of the base tetrahedron). In what I called the order-2 solution, there are two edges that must be crossed to get from pentagon to pentagon; in the order-3 solution, there are three. In the equivalent figure on the right, while the corner figures have steadily increased along triangular numbers (1, 3, 6...), the face figures have gone from a triangular arrangement to a hexagonal arrangement.

The means of generating the figure for each face is as follows. For triangular numbers $\Delta_n$, the number of points on the edge of the figure is simply n. If the three corner points are turned into pentagons and the remaining points are turned into hexagons, then there will be $n - 1$ edges to traverse. Reorganizing, this means that an order-*n* solution has $\Delta_{n+1} - 3$ hexagons per face, $\Delta_n$ hexagons per edge, and $4(\Delta_{n + 1} + \Delta_{n - 3}) = 4((n+1)^2 - 3)$ hexagons in total.

::: {}
![]()
First three face figures as a series of triangular numbers.
:::

 Parameter              | $F_6$ |  V  |  E
------------------------|-------|-----|-----
(1, 0)                  | 4     |  28 | 42
(2, 0)                  | 24    |  68 | 102
(3, 0)                  | 52    | 124 | 186
(4, 0)                  | 88    | 196 | 294
(5, 0)                  | 132   | 284 | 426


### Whirled Solutions

The entries of the parameter column are 2-tuples for two reasons: one, to be parallel to the previous tables, and two, because there is an additional parameter. When drawing points on the tetrahedral net, there was no need to place the pentagons at on the midpoints of the triangular figures. While the triangular figures were the wrong direction to take, the possibility remains to choose another facet to (symmetrically) fit the pentagons into. Since $\Delta_3$ was skipped in the above diagrams, consider arranging hexagons like this and placing pentagons on one side of the "middle" hexagon in a rotationally symmetric way.


:::: {}
::: {}
![]()
Tetrahedral net with $\Delta_3$ on faces and offset pentagons.
:::

::: {}
![]()
Equivalent planar graph. External face is colored blue.
:::

::: {}
![]()
Planar graph with recolored faces and path between pentagons identified.
:::

::: {}
![]()
Single rotationally symmetric section with paths (and parameters) identified.
:::
::::

There are $4(6 + 4) = 40$ hexagons in total, which coincides with the earlier tetrahedral antitruncation (3, 3). To attempt to parametrize this figure, start from a pentagon facing a red hexagon and cross two edges. Then, turn 60 degrees and cross a final edge, completing the path (2, 1). If the previous solutions are similar to class I Goldberg solutions, then these are similar to class III Goldberg solutions. Each edge of the pentagon can be characterized in the following way:

1. The "constrained" edge shared between two pentagons. Crossing this edge always gives the path (1, 0)
2. The "canonical" edge on the face of the tetrahedral net. The shortest paths across any two of these are (2, 1) and (1, 2)
3. The edge which shares a vertex with a (b) edge, but not an (a) edge. The paths (3, 0) and (2, 1) link up to a (d) edge.
4. The edge which shares a vertex with a (b) edge and an (a) edge. The paths (1, 2) and (3, 0) link up to a (c) edge, and (1, -1) always links it to an (e) edge.
5. The last edge, which does not share a vertex with a (b) edge, but does with an (a) edge. Links up to other (e) edges along the path (2, 2) and to (d) edges always along (1, -1).

The canonical path (2, 1), the constrained path (1, 0) (which comes from preserving $E_2$s), and the auxiliary path (1, -1) combine to create the noncanonical paths, (2, 2) and (3, 0). I have yet to prove this construction works consistently, but I suspect that this can be generalized and that a parallel to class II Goldberg solutions also exists.


Symmetry and Other Tetrahedral Solutions
----------------------------------------

All of these figures have [tetrahedral symmetry](https://en.wikipedia.org/wiki/Tetrahedral_symmetry) ($T$) by construction, at least rotationally. This is possible because the base case, the dodecahedron, has icosahedral symmetry, which contains tetrahedral symmetry. Class I and II Goldberg antitruncations and non-whirled edge-constrained cases also have mirror symmetry about three axes/planes ($T_d$). The order-2 edge-constrained case appears to be even better, since all 8 of the "interpolating" regions containing hexagons are the same. This perhaps implies octahedral symmetry ($O$), though I have not verified this.


### Double-Goldberg

Every one of these solution figures, both constructed and otherwise, can be extended using one of the previously-discussed Goldberg-Coxeter Conway operators ($dk$, $tk$, $c_n = du_nd$, and $w$) to create another solution while preserving tetrahedral symmetry. Effectively, this combines antitruncations (which expand the pairs of pentagons, but preserve the triples) and the edge-constrained solutions (which expand the triples, but preserve the pairs) based on the truncated triakis tetrahedron. Some of the easily-constructible solutions based on Goldberg polyhedra are accumulated in the table below.

```{python}
#| label: tbl-double-goldberg
#| echo: false

# from IPython.display import Markdown
# from tabulate import tabulate
#
# polyhedronisme = lambda x, y: f"[{x}](https://levskaya.github.io/polyhedronisme/?recipe={y})"

table = [
  ["c(2, 0)", polyhedronisme("ct6kT", "K300dudt6kT"), "(2, 0), (2, 2), (4, 0)", 46, 112, 168],
  ["c(2, 2)", polyhedronisme("ct6uT", "K300duK30dt6uT"), "(2, 2), (2, 0), (4, 2)", 70, 160, 240],
  ["c(4, 1)", polyhedronisme("ct6gtT", "K300duK50dt6gtT"), "(4, 2), (2, 0), (6, 0)", 142, 304, 456],

  ["dk(2, 0)", polyhedronisme("dkt6kT", "K300dkt6kT"), "(1, 1), (2, 2)", 32, 84, 126],
  ["dk(2, 2)", polyhedronisme("dkt6uT", "K300dkK30t6uT"), "(1, 1), (3, 0), (3, 3)", 50, 120, 180],
  ["dk(4, 1)", polyhedronisme("dkt6gtT", "K300dkK50t6gtT"), "(1, 1), (3, 3), (4, 1)", 104, 228, 342],

  ["tk(2, 0)", polyhedronisme("tkt6kT", "K300tkt6kT"), "(3, 0), (3, 3)", 116, 252, 378],
  ["tk(2, 2)", polyhedronisme("tkt6uT", "K300tkK30t6uT"), "(3, 0), (3, 3), (6, 0)", 170, 360, 540],
  ["tk(4, 1)", polyhedronisme("tkt6gtT", "K300tkK50t6gtT"),"(3, 0), (6, 3), (9, 0)", 332, 684, 1026],

  ["w(2, 0)", polyhedronisme("wt6kT", "K300wK30t6kT"), "(2, 1), (4, 1)", 88, 196, 294],
  ["w(2, 2)", polyhedronisme("wt6uT", "K300wK100t6uT"), "(2, 1), (3, 0), (4, 1)", 130, 280, 420],
  ["w(4, 1)", polyhedronisme("wt6gtT", "K300wK50t6gtT"), "(2, 1), (5, 3), (6, 3)", 256, 532, 798],
]

Markdown(tabulate(
  table,
  headers=["(Tetrahedral Goldberg) Parameter", "Conway", "Paths Between Pairs", "$F_6$", "V", "E"],
  numalign="center",
  stralign="center",
))
```
Note that higher-order subdivisions (chamfers) and higher-order whirls are still possible.

The same operators can be applied to the edge-constrained cases (and may intersect with the above table in a truly topologically equivalent sense), but owing to the difficulties in generating these, I will not attempt to tabulate them. Before I consider doing so, I would need to formalize the construction of the graph (or attempt to write a program which identifies identical vertices, as I did manually to sketch the figures initially), canonicalize and tweak the graph into a closed 3D figure, and use the result as a seed in a viewer which supports (importing figures and) interpreting Conway notation.


Closing
-------

Tetrahedral solutions are vastly more complicated. In decreasing the specificity of symmetry, the amount of free parameters increases. Despite claiming existence of these tetrahedral solutions topologically, actual geometric construction of some is difficult. Pentagons are no longer regular, any(?) arrangement with thrice-rotational symmetry per face is valid, and I am unsure whether the resultant polyhedra can even be made equilateral.

As you may be able to guess, not even specifying tetrahedral symmetry is enough to completely classify every solution either. The [next post]() will discuss additional solutions, some of whose members *cannot* be constructed using common seed polyhedra.

Polyhedron images were generated using [*polyHédronisme*](https://levskaya.github.io/polyhedronisme/), nets and graphs were created with GeoGebra.
