A 9-Venn diagram with 73 crossings
from a human
After the 37 we wondered if you could beat just doubling it for nine curves. Instead of gluing two copies at one spot, we glued the two 37s along chains of faces, and a search found a 73. These are upper bounds, nobody knows the real minimum for nine curves.
A 9-Venn diagram is nine closed curves in the plane that cut it into 512 regions, one for each way of being inside or outside each curve. Several curves may pass through the same point, and the size of a diagram is its number of crossing points. Claude found one with 73 crossing points by gluing together the two 37-crossing 8-Venn diagrams from an earlier post. It is only an upper bound: nine curves need at least 64 crossings, and the true minimum is somewhere from 64 to 73.

Curve 0 is drawn as the horizontal line and passes through all 73 points, like the line curve of the 37. The ninth curve, in magenta, touches only 8 of them. The drawing was checked from its own geometry: the curves meet only at the 73 points, each curve is one closed loop, and reading the picture back pixel by pixel gives all 512 regions, each in one piece.
Brenner, Gregor, Mütze and Verciani (BGMV, arXiv:2511.09230) list 80 for nine curves, from their doubling lemma applied to their 40-crossing 8-Venn diagram. The same lemma applied to our 37 gives 74. The 64 comes from Euler's formula: a crossing point where d curves meet contributes d - 1 to a sum over all crossings that always equals 2^9 - 2 = 510, and d is at most 9, so there are at least 510/8 crossings, which rounds up to 64.
The 73, its doubles and a record of which checker passed which file are in version 1.1 of github.com/dzoba/minimum-venn-diagram-8.
Why doubling stops at 74
The doubling lemma takes an 8-curve diagram and a mirror copy, cuts one crossing point out of each, and joins the two with a ninth curve. That curve meets every other curve exactly twice, and no diagram with such a curve can do better than 74. Keep one side of that curve and collapse the curve itself to a point: the other eight curves form an 8-Venn diagram whose crossings are the ones on that side plus the new point. So each side holds at least 36 crossings, and at least two more lie on the curve itself. That proposition is in the paper in the repository, and Codex reviewed it. To get under 74, the ninth curve has to do something else.
Gluing along chains of faces
Doubling cuts at a single crossing point. Here we cut along a path of them instead. In the dual graph, where each region is a vertex and each crossing is a face, pick a chain of m faces in which consecutive faces share exactly one edge and no other pair of faces in the chain shares an edge. Delete the m - 1 shared edges and the chain becomes one big face. Do the same with a chain of m' faces in a second 8-curve diagram, mirrored and relabelled by a symmetry of the 8-dimensional cube. Then join the two big faces by k edges of the ninth direction at matching positions on their boundaries. The k new faces between consecutive joins are the crossing points on the ninth curve.
The count is (37 - m) + (37 - m') + k, and ordinary doubling is the case m = m' = 1, k = 2. A gluing is valid when every new face uses each curve zero or two times, every curve still closes into a single loop, and the new faces are simple. These conditions depend only on which inside curve is matched with which outside curve, so choosing the relabelling becomes a perfect-matching problem on an 8 by 8 table.
The census used our two 37s, which are not isomorphic, as the outside and the inside in every combination, with chains of single shared edges and m + m' from 8 to 16. At 73 crossings it found exactly one diagram up to isomorphism: a 4-face chain in the first 37 and a 5-face chain in the second, joined at k = 8 points, so 33 + 32 + 8 = 73. At 72 it found nothing. That is a statement about this family, not about nine curves.
The ninth curve of the 73 passes through only 8 of its points, and that alone stops this kind of seam at 72. Each crossing adds d - 1 to the sum of 510: at most 8 for each of the 8 points on the ninth curve, and at most 7 for every other point, since that point misses the ninth curve. So 510 <= 7F + 8, and F >= 72. Claude worked this out after the census, and Codex refereed it.
Larger curve counts
The 73 has colorful faces, faces of full length that contain a region and its complement, which is what the doubling lemma needs. So it can be doubled again, and again, giving 73 * 2^(n-9) crossings:
| curves | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|
| doubling the 73 | 146 | 292 | 584 | 1,168 | 2,336 | 4,672 |
| doubling the 37 | 148 | 296 | 592 | 1,184 | 2,368 | 4,736 |
| BGMV | 160 | 320 | 640 | 1,280 | 2,560 | 5,120 |
| counting bound | 114 | 205 | 373 | 683 | 1,261 | 2,341 |
These are upper bounds, and we make no optimality claim for any of them.
How it was built and checked
After the 37 was verified I asked for a slow search below 74 at nine curves. Claude wrote the construction and the census, first in Python and then, through a subagent, as a C++ port; the two generate the 73 byte for byte. While refereeing the census, Codex found two bugs that made it skip cases, both fixed before the run that found the 73, and contributed the counting filter the C++ census uses to discard pairs of chains early.
The 73 and the 146 passed five checkers. Three are from the 37 release: check_a.py and check_b.py, written by the same Claude session that produced the 73, and ref37_v2.py, written from scratch by a separate Claude instance. The other two are Codex's checkers A and B, which also confirm all 512 labels, nine Jordan curves, and every pair of curves crossing a positive even number of times. Codex also rebuilt the 73 from a description of the construction, without our code, and reproduced every face and edge. The diagrams for 11 through 15 curves passed the three release checkers only; Codex's were not run on them.
What is open
After the 73, Claude searched wider gluing families, chains that branch into trees and mirrored inside copies, and found nothing at 72. Then it spent two days trying to build a 64 directly. It proved several constraints a 64 would have to meet, and Codex refereed them (at least seven of the nine curves would pass through all 64 points, for one), but each also holds for the known minimum diagrams with five and six curves, so none of them rules a 64 out. The constructions did not work either: walks from doubled seeds stayed at 74, and exact builders that reproduce small cases at five and six curves stalled at seven. Those are statements about our methods. Nothing we have says whether a 64, or anything under 73, exists.