[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"CaVcTmRq4c":3},"# erdos-unit-distance-comparator\n\nIndependent verification, via\n[leanprover/comparator](https://github.com/leanprover/comparator), that\nthe [ErdosUnitDistance](https://github.com/kim-em/erdos-unit-distance)\nlibrary really proves:\n\n> **The uniform-constant form of Erdős's unit-distance conjecture is\n> false** — for every `C > 0` there are arbitrarily large `n` admitting\n> `n`-point planar sets with more than `n^(1 + C / log log n)`\n> unit-distance pairs (L. Alpöge, 2026).\n\n## What to audit\n\nOnly [`Challenge.lean`](Challenge.lean), which imports **only Mathlib**:\nit defines the unit-distance count and states the theorem (with `sorry`).\nIf you believe `Challenge.lean` says what the theorem above says, then a\nsuccessful comparator run certifies that the library proves it using only\nthe axioms `propext`, `Quot.sound`, `Classical.choice` — without your\nhaving to read or trust any of the proof code.\n\n`Solution.lean` bridges the challenge statement to the library's theorem\nby definitional equality; comparator rebuilds both modules in a sandbox,\nexports them with `lean4export`, compares the statements, checks the\naxioms, and replays the proof through the Lean kernel.\n\n## Run it\n\n```\n./verify.sh\n```\n\n(Linux; downloads comparator, lean4export and landrun pinned to this\nproject's toolchain, fetches the Mathlib cache, and runs the check.\nExpected final output: `Your solution is okay!`)\n\nThe same script runs in CI on every push — see the badge/workflow under\n`.github/workflows/comparator.yml`.\n\n## In the Palomar registry\n\nRegistered as\n[PALOMAR-2026-08-08-000001](https://palomar-registry.org/entry.html?id=PALOMAR-2026-08-08-000001),\nwhich runs the same comparison itself and publishes a rendered, hoverable\n`Challenge.lean` beside the record, so the statement above can be read without\ncloning anything.\n\nA registered render is immutable: the bytes are what the record's hash is of.\nSo an improvement to how Palomar draws one reaches a reader through a new\nversion rather than by rewriting an old record, and a new version needs a\ncommit that has not been registered.\n\n## Note for NixOS users\n\nlandrun needs the Nix store mounted read-only in its sandbox; wrap it as\n`landrun --rox /nix/store \"$@\"` and put that wrapper first in `PATH`\nbefore running `./verify.sh`.\n",1788025903312]