A simple planar unit-distance embedding of the Heawood graph #
The Heawood graph on 14 vertices is the point-line incidence graph of the Fano plane.
Besides being 3-regular and symmetric it has a number of interesting properties:
it is the unique (3,6)-cage, it can be embedded on the torus with dual K₇ and so on.
In 1972 Chvátal wrote of a "suspicion" that the Heawood graph was not unit-distance embeddable into the Euclidean plane (Problem 21 in [CKK72]). In 2009 Gerbracht disproved the suspicion by presenting an explicit embedding [Ger09], but the embeddings presented there are very hard to describe: the minimal polynomials of their vertex coordinates go up to degree 79. Other embeddings found since then, such as the one in [HI14], suffer from the same complexity issue.
This file formalises a much simpler embedding, independently found by Moritz Firsching in July 2016
and Jeremy Tan in August 2025.
Its coordinates are polynomials in the unique real root of 2c^3 + 3c + 1.
The Heawood graph, a notable simple graph on 14 vertices. The numbering corresponds to a typical Hamiltonian cycle-and-arcs drawing.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Heawood graph is 3-regular.
A key number #
The real root c = -0.312908... of 2c^3+3c+1.
Instances For
The real root c = -0.312908... of 2c^3+3c+1.
Equations
- SimpleGraph.Heawood.termC = Lean.ParserDescr.node `SimpleGraph.Heawood.termC 1024 (Lean.ParserDescr.symbol "c")
Instances For
The embedding proper #
Notation for the Euclidean plane.
Equations
- SimpleGraph.Heawood.termPlane = Lean.ParserDescr.node `SimpleGraph.Heawood.termPlane 1024 (Lean.ParserDescr.symbol "Plane")
Instances For
The base function from graph vertices to Euclidean points in our embedding.
Equations
- SimpleGraph.Heawood.udMap 1 = !₂[(1 + SimpleGraph.Heawood.root) / 2, SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2 + 1]
- SimpleGraph.Heawood.udMap 0 = !₂[SimpleGraph.Heawood.root, 1 / 2]
- SimpleGraph.Heawood.udMap 7 = !₂[0, 1 / 2]
- SimpleGraph.Heawood.udMap 2 = !₂[1, 1 / 2]
- SimpleGraph.Heawood.udMap 9 = !₂[1 - SimpleGraph.Heawood.root, 1 / 2]
- SimpleGraph.Heawood.udMap 10 = !₂[(1 + SimpleGraph.Heawood.root) / 2, SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2]
- SimpleGraph.Heawood.udMap 5 = !₂[(1 - SimpleGraph.Heawood.root) / 2, SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2]
- SimpleGraph.Heawood.udMap 3 = !₂[(1 + SimpleGraph.Heawood.root) / 2, -(SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2)]
- SimpleGraph.Heawood.udMap 8 = !₂[(1 - SimpleGraph.Heawood.root) / 2, -(SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2)]
- SimpleGraph.Heawood.udMap 13 = !₂[SimpleGraph.Heawood.root, -1 / 2]
- SimpleGraph.Heawood.udMap 6 = !₂[0, -1 / 2]
- SimpleGraph.Heawood.udMap 11 = !₂[1, -1 / 2]
- SimpleGraph.Heawood.udMap 4 = !₂[1 - SimpleGraph.Heawood.root, -1 / 2]
- SimpleGraph.Heawood.udMap 12 = !₂[(1 + SimpleGraph.Heawood.root) / 2, -(SimpleGraph.Heawood.root ^ 2 - SimpleGraph.Heawood.root / 2 + 1)]
Instances For
udMap is injective and thus can be used in a unit-distance embedding.
A unit-distance embedding of the Heawood graph in the Euclidean plane.
Equations
- One or more equations did not get rendered due to their size.