Every Edge But One

Unit-distance graphs398 minimal forbidden graphs74 known since 2019324 new, on ten verticesOEIS A308349182 proved in your browser

Put the vertices of a graph at distinct points of the plane so that every edge is exactly one unit long. Some graphs let you and some do not. Among those that do not are the smallest ones: graphs that cannot be drawn, but can the moment any single edge is taken away. There are 398 of them with ten vertices or fewer, and every graph that size which cannot be drawn contains one of them. Each is drawn below with every edge at length one, but one.

The Möbius ladder10 vertices · 15 edges
the dashed edge1.000 every other edge1 closest two points0
Drag any point. The solid edges stay exactly one unit long, so the drawing can only move in the ways its edges allow.

Tap any edge to make it the dashed one instead: the rest redraws with every edge at length 1, whichever edge you pick. Pull asks the solver to make the dashed edge 1 as well. Nothing here is a proof; the proofs are further down.

The question is easy to state. A unit-distance graph is one whose vertices can be placed at distinct points of the plane with every edge exactly one unit long; pairs that are not edges can be any distance apart, including one. A triangle is a unit-distance graph. So is a square, and a hexagon with its centre joined to every corner. Four points that are all one apart are not: after two equilateral triangles share a side, the last pair is √3 apart, never 1. That is K4, the smallest graph that cannot be drawn.

Take away any edge of K4 and it can be drawn: two triangles back to back. A graph like that, impossible as a whole but possible without any one of its edges, is called a minimal forbidden graph, and the reason to want the full list is a theorem of plain logic: a graph can be drawn exactly when it contains none of them. Every graph that cannot be drawn contains a smallest part that cannot, and that part is on the list.

Aidan Globus and Hans Parshall found every minimal forbidden graph with at most nine vertices in 2019: there are 74. (Chilakamarri and Mahoney had done it to seven in 1995.) Ten vertices was left open; Alexeev, Mixon and Parshall named it in the closing discussion of their 2024 paper on the unit distance problem, and perhaps even extend their result to unit-distance graphs on 10 vertices. Would such an extension make u(22) accessible? This page is that extension: 324 minimal forbidden graphs on ten vertices, 398 in all, every one of them drawn.

What the dashed edge is telling you

Every drawing on this page leaves out one edge, drawn dashed. Without it, the rest has a drawing with every edge exactly 1, and that is what you see: the solid edges are unit length to ten decimal places, rounded from positions computed to fifty digits. With it, there is no drawing at all, this one or any other. And the choice of which edge to leave out does not matter. Tap any edge in the drawing above and the graph redraws with that edge dashed instead; all 6,398 of those one-edge drawings, for all 398 graphs, are on this page. That is what minimal means, and it is what you can put your hands on.

Pull the dashed edge towards 1 and the solver will try. For many of these graphs it succeeds, in a sense: every edge reaches length 1, but only because two of the points have slid onto each other, which a drawing is not allowed to do. For others it simply stalls with some edge still too long or too short. Neither outcome is a proof, since a solver can fail to find what exists. The proofs follow.

Two facts that do most of the work

Write each point as a complex number z. Then two facts hold in every drawing with unit edges and distinct points.

Every 4-cycle is a rhombus

Four unit sticks joined in a loop always make a rhombus, with opposite sides parallel and equal:

z0 + z2 = z1 + z3 for the loop 0, 1, 2, 3

The reason is short. The four sides are unit vectors that add to zero, so the first two add to minus the last two. Two unit vectors with a given sum are fixed up to order (they sit where two unit circles cross), so the sides pair off into opposite pairs. Of the three ways to pair them, one is the rhombus and the other two put a corner on the corner across from it. In a drawing no two points coincide, so it is always the rhombus. Try it:

Four unit sticksdrag a corner
z0 + z2 − z1 − z30 every stick1 closest two corners1
However you bend it, the sum stays at zero while the four corners stay apart.

Every triangle is equilateral, turning left or right

Three points that are pairwise one apart form an equilateral triangle, and there are two of those on any side: the third corner is the side turned by 60 degrees one way or the other. With ω = eiπ/3, a sixth root of unity, and ω̄ its mirror image:

zc − za = ω (zb − za) turning left
zc − za = ω̄ (zb − za) turning right

Both facts are equations that are linear in the points, so they can be added and subtracted. When some combination of them says that two points are equal, the graph cannot be drawn. When it says that an edge would have some length other than 1, the graph cannot be drawn either. And when it says that two points which are not joined by an edge must nevertheless be exactly 1 apart in every drawing, that is a new unit distance to add as an edge and use again. Neither fact is new here: Globus and Parshall's classification ran on what MathWorld calls their rhombus logic, and Alexeev, Mixon and Parshall turned it into a calculus of moves (their Section 4). The rest of this page uses their four kinds of move (the last, a split into cases, only on triangles), with exact arithmetic in numbers of the form p + qω.

Three that cannot be drawn, by hand

K4. Every four of its points form a 4-cycle in three ways. The loop 0, 1, 2, 3 gives z0 + z2 = z1 + z3, and the loop 0, 1, 3, 2 gives z0 + z3 = z1 + z2. Add them: z0 = z1. Two points in one place, so no drawing.

K2,3. Points 0, 1 and 2 are each one unit from both 3 and 4. The loops 0, 3, 2, 4 and 1, 3, 2, 4 give z0 + z2 = z3 + z4 and z1 + z2 = z3 + z4; subtract, and 0 lands on 1. (In pictures: two unit circles cross at most twice, and three points cannot share two crossings.)

The Möbius ladder M10, a ring of ten points with the five opposite pairs joined, so that it is a ladder of five rungs whose ends are joined with a half twist. Each square between two neighbouring rungs is a 4-cycle, hence a rhombus, hence each rung, read as a vector, equals the next. Go once round: after five squares the ladder has turned over, and the first rung meets itself pointing the other way. A vector equal to its own negative is zero, and a zero rung puts its two ends in one place. So no Möbius ladder can be drawn. MathWorld notes the same fact, which it says can be proven by hand or using the 'rhombus logic' of these papers, and credits it to Alexeev in a personal communication.

Beside it is the Petersen graph, which also has ten vertices, fifteen edges and three at every vertex, and can be drawn: a unit pentagon and a unit pentagram, a quarter turn apart. That works because their circumradii satisfy R12 + R22 = (5 + √5)/10 + (5 − √5)/10 = 1, which makes every spoke exactly 1 long. The Petersen graph has no 4-cycles at all, so the rhombus has nothing to hold.

The wall: all 398

The 74 of Globus and Parshall first, from four vertices to nine, then the 324 on ten vertices. Each is drawn with the edge that makes its picture clearest dashed; the number under it is that edge's length in this drawing. Open one to hold it, flex it, dash any edge, and read its proof.

Your browser, proving

For each of the 398, the engine behind this page (engine.mjs) looks for a proof that uses nothing but the rhombus and the triangle. It writes down every 4-cycle as a rhombus equation; when there are triangles it splits into cases, one for each way they can turn; and in each case it solves the equations exactly, looking for two points forced together, an edge forced to the wrong length, or a pair forced one apart to add as a new edge. What it finds, it writes out as a proof: a short list of the equations, each with a coefficient, whose sum is a contradiction. A second, much simpler program checks each proof without searching: it confirms that every equation belongs to the graph and that the weighted sum comes out exactly as claimed. That checker has just run in your browser:

checking…

Of the 398, 182 fall to these two facts alone. Four to open: the Möbius ladder (five rhombi, and two points meet); I??gpb@~_, which looked drawable on paper during the search until someone noticed that two of its points, not joined by an edge, are forced exactly one apart (here three rhombi force it, and two more then put two points on one); H_hOpNo, where four rhombi make one edge exactly twice another, so it would be 2 long; and HpO]@cN, which needs its triangles and takes two cases.

For the other 216, adding and subtracting these equations is not enough (the engine's search covers every case, so this is a fact about the method, not a failure to look). Their proofs need a step beyond linear algebra: that lengths are real numbers, so that a sum of squares cannot be negative, or the more general case split of Alexeev, Mixon and Parshall on three edges at a time. The certificates that refute them are of those kinds: a sum of squares that would have to be negative (real), a polynomial identity that reduces to 1 = 0 (null), either one written as a chain of smaller steps (-dag), a gadget that forces a unit distance which completes a smaller forbidden graph (tu), and the full move calculus (tree). Each graph's card says which.

Can the engine be trusted not to prove something false? A proof it prints is checked by the checker, so the question moves there, and it was put two ways. First, it was run where it must fail: on all 14,008 graphs with at most nine vertices that avoid the 74 (exactly the drawable ones, by Globus and Parshall's theorem, and exactly as many as OEIS A350507 counts), and on the 32,653 ten-vertex graphs that were given exact drawings in the search for the 324. It refuted none of them. Seven deliberately broken copies of the engine, each wrong in one small way, refuted thousands of them, so the test has teeth. Second, every proof was fed to the checker against the wrong graph: the same graph with one edge removed, which can be drawn. A correct checker must reject all of those, 2,840 in all, and it did. (It also must, for a reason worth pausing on: a proof that never used some edge would prove the smaller graph impossible too.)

Want the search itself, not just the checking?

Counting

How the 324 were reached, as a funnel. Every graph on ten vertices that could be minimal forbidden has no cut vertex (a graph with one can be drawn a piece at a time, turning each piece about the joint until nothing collides) and contains none of the 74. Of the 9,743,542 ten-vertex graphs with no cut vertex (OEIS A002218), 33,162 avoid all 74. Each of those was decided by a certificate: 32,653 were drawn exactly, with coordinates given as algebraic numbers and checked, and 509 were refuted. A refuted graph is minimal when every one-edge deletion was drawn; 324 are, and 185 contain a smaller refuted graph.

The same lists settle three counts at ten vertices. A graph with at most ten vertices can be drawn exactly when it contains none of the 398, so:

The last row is not in OEIS; the two before it gain their tenth terms. The densest of the 32,653 drawn graphs has 20 edges and is the only one with 20, which is exactly what Alexeev, Mixon and Parshall's table gives for ten points (u(10) = 20, one densest graph): a check on the search that its authors did not choose.

What the list is for: the unit distance problem

In 1946 Erdős asked how many pairs among n points in the plane can be exactly one unit apart. Call the most u(n). Erdős's own construction, a square grid scaled so that a common distance becomes 1, gives about n1 + c/log log n pairs; the best upper bound known grows like n4/3, and the truth is somewhere between. Exact values are known only for small n, and each new one is a computation. The way in is these graphs: a set of points with many unit distances is a unit-distance graph with many edges, so it contains none of the forbidden graphs. Enumerate the graphs that avoid them, edge by edge, and the densest survivors bound u(n) from above.

Alexeev, Mixon and Parshall took the exact values to 21 points with the 74 and six gadgets; at 22 points they left 60 or 61. The Sixty-First Distance settled it here in September 2026: u(22) = 60. A lemma of Schade's (a graph with n vertices and m edges has an induced subgraph on n − 1 vertices with at least ⌈m(n − 2)/n⌉ edges) then carries the bound upward, and every upper bound from 23 to 30 drops by one to three edges. At 23 points it leaves u(23) = 64 or 65.

Would the ten-vertex list make the next one reachable? Its first answer is a surprise: it shrinks the search, and so far it has slowed the clock.

Forbidding all 398 instead of 74 prunes the tree of candidate graphs hard where it is widest. On the first slices of a 23-point, 65-edge search (the question u(23) = 65?), measured as this page was being written, the tree kept 28 times fewer graphs at the 20-vertex level than with the 74 alone. But every new candidate must now be checked against 3,875 patterns instead of 635, and at the levels where the tree is still broad that costs more than the pruning saves: the same slice ran 1.46 times slower, and a slice of the 22-point search 1.94 times slower. The larger list pays for itself only deep in the tree. The lever that looks bigger is the one this page runs: the rhombus and triangle rules, applied to every candidate at every level of the search, are projected from samples of the tree to cut the 23-point search to about a fifth of its cost. That work is running now. The 22-point search took about 165 machine-hours; the first slices put 23 points an order of magnitude beyond it, so the answer is not in yet. These figures are from the laboratory notebook of a computation in progress and will change.

How the 324 were found

The whole search ran in about a day, 24 and 25 September 2026, and it was built so that nobody has to trust the part that did the searching.

What remains trusted is small and named: the checker's handful of arithmetic libraries, the completeness of the list of ten-vertex graphs (nauty's, matched to OEIS A002218), and the soundness proofs of the certificate types, which are written out. The refutation certificates themselves have been read by two verifiers built separately; they are packaged for a public deposit that has not been published yet, so the full set is not downloadable from here today.

Check it yourself

Everything this page draws or proves is in two files, data/the-398.json (the 398, their default drawings, certificate types and the 182 proofs) and data/deletions.json (all 6,398 one-edge drawings). Your browser has already checked the default drawings:

measuring…

The same checks, and more, run outside the browser. research/every-edge-but-one/verify.mjs downloads the data from this site, decodes all 398 graphs and confirms the counts against OEIS A308349; that no graph on the list contains another (a list of minimal graphs must not); that each has no cut vertex; that every one of the 6,398 drawings has every remaining edge at length 1 and its points apart; that each of the 182 proofs checks, and that each fails against every one-edge deletion; that a fresh search reproduces exactly the 182; that the engine refutes none of the 14,008 drawable graphs on at most nine vertices, and with --full none of the 32,653 on ten; that the Petersen drawing is exact; and that the bounds in the table follow from Schade's lemma. Save it anywhere and run node verify.mjs: it needs Node 18 or later and nothing else, and it reads the same files your browser did. Its companion mutate.mjs plants thirteen faults, one at a time, and confirms that each one turns it red.

-- from verify.mjs (52 passed, 0 failed)
A. the list
  ok   398 graphs (398)
  ok   orders 1..9 match OEIS A308349: 0, 0, 0, 1, 1, 1, 3, 13, 55 (0, 0, 0, 1, 1, 1, 3, 13, 55)
  ok   324 on ten vertices (324)
  ok   every record's n and m agree with its graph6 string
  ok   every graph has no cut vertex (a minimal forbidden graph cannot have one)
  ok   no graph on the list contains another, so none is a relabelled copy of another (0 containments, 1.1 s)
  ok   the 324 by edges: 15: 4, 16: 126, 17: 191, 18: 3 ({"15":4,"16":126,"17":191,"18":3})
  ok   the 324 by degree: min 2: 124, 3: 200; max 3: 1, 4: 145, 5: 145, 6: 30, 7: 3
  ok   certificate types of the 324: tree 103, real-dag 97, null-dag 65, real 24, null 22, tu 13 ({"tree":103,"null":22,"tu":13,"real-dag":97,"real":24,"null-dag":65})
  ok   exactly one of the 324 is 3-regular (Is?@WxcU?), with 4-cycles, as the Möbius ladder has
B. the drawings
  ok   398 default drawings: solid edges 1 to within 1.2e-10, points at least 0.1241 apart
  ok   every one-edge deletion drawn: 6398 drawings, every remaining edge 1 to within 1.3e-10, points at least 0.0197 apart (0 missing, 0 bad)
  ok   the 398 have 6,398 edges between them, one drawing each
C. the proofs, checked by code written here
  ok   182 proofs, every one checks exactly (182 of 182)
  ok   against the wrong graph (the same graph minus one edge, which can be drawn) every proof fails: 2840 of 2840
  ok   proved, by order 4..10: 1, 1, 1, 2, 8, 27, 142 (1, 1, 1, 2, 8, 27, 142)
  ok   the page's own checker (engine.mjs) agrees on all 182
D. the engine the page runs
  ok   a fresh search refutes exactly the 182 that carry proofs (182 refuted, 1.9 s)
  ok   14,008 control graphs on 1..9 vertices, as many per order as OEIS A350507 counts (1, 2, 4, 10, 25, 85, 332, 1746, 11803)
  ok   every control graph avoids all 74, so each can be drawn (Globus and Parshall's theorem): 0 contain one
  ok   the engine refutes none of the 14,008 drawable graphs on at most nine vertices (0, 24.7 s)
E. the Petersen drawing
  ok   it is the Petersen graph: ten vertices, 3-regular, girth 5 (the only such graph)
  ok   its graph6 string and its edge list describe the same labelled graph, the one the coordinates are for
  ok   all 15 edges are 1 to within 8.2e-13, points at least 0.3865 apart, no other pair at distance 1
  ok   the circumradii of the unit pentagon and unit pentagram satisfy R1^2 + R2^2 = 1
F. the bounds, by Schade's lemma
  ok   from u(22) = 60: 65, 70, 76, 82, 88, 94, 100, 107
  ok   from u(22) <= 61 it gives Alexeev, Mixon and Parshall's printed bounds: 66, 72, 78, 84, 90, 96, 103, 110
  ok   its figures add up: 32,653 + 509 = 33,162; 509 - 324 = 185; 14,008 + 32,653 = 46,661; 398 - 182 = 216

-- mutate.mjs: 13 of 13 planted faults caught