<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Benjamin's Substack: Artificial Intelligence]]></title><description><![CDATA[A section for articles about AI. Topics may include AI policy/polling analysis, advice and commentary about the technology, and some interesting specific stories (e.g. how AI is being applied to open math conjectures).]]></description><link>https://benjamingrayzel.substack.com/s/artificial-intelligence</link><image><url>https://substackcdn.com/image/fetch/$s_!4zTF!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c93acc3-5787-41d3-975a-cf8041bf20a1_1024x1024.png</url><title>Benjamin&apos;s Substack: Artificial Intelligence</title><link>https://benjamingrayzel.substack.com/s/artificial-intelligence</link></image><generator>Substack</generator><lastBuildDate>Tue, 07 Apr 2026 14:35:07 GMT</lastBuildDate><atom:link href="https://benjamingrayzel.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Benjamin Grayzel]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[benjamingrayzel@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[benjamingrayzel@substack.com]]></itunes:email><itunes:name><![CDATA[Benjamin Grayzel]]></itunes:name></itunes:owner><itunes:author><![CDATA[Benjamin Grayzel]]></itunes:author><googleplay:owner><![CDATA[benjamingrayzel@substack.com]]></googleplay:owner><googleplay:email><![CDATA[benjamingrayzel@substack.com]]></googleplay:email><googleplay:author><![CDATA[Benjamin Grayzel]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[How I use AI in Writing]]></title><description><![CDATA[A post I think every internet writer should have.]]></description><link>https://benjamingrayzel.substack.com/p/how-i-use-ai-in-writing</link><guid isPermaLink="false">https://benjamingrayzel.substack.com/p/how-i-use-ai-in-writing</guid><dc:creator><![CDATA[Benjamin Grayzel]]></dc:creator><pubDate>Tue, 07 Apr 2026 06:58:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4zTF!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c93acc3-5787-41d3-975a-cf8041bf20a1_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Note: I&#8217;m writing this page partly as a living reference. Any time I find a good example of a way I use AI, I might update this page with that example, especially as I work my way through Inkhaven.</em></p><div><hr></div><p>My Substack feed is often full of content about AI. Much of it is well-written, well-researched, and useful. Much of it is also slop. I don&#8217;t want to point fingers at any author in particular, but sometimes an article enters my feed and it&#8217;s just supremely obvious that I&#8217;m reading ChatGPT.</p><p>I&#8217;m not opposed to AI-generated writing on principle. Even on Substack, and even for articles that are fully AI-generated, there are cases where I see the value. But I <em>am</em> opposed to articles that are written by AI but presented as the human work without any sort of disclaimer.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> This seems deeply disrespectful to the author&#8217;s subscribers.</p><p>I am someone who uses LLMs a lot, in many different ways, across many different aspects of my life. This is how I use them in my writing process.</p><div><hr></div><p>I sometimes think of my writing process as existing across 3 buckets: pre-writing, drafting, and revising. They are not fixed. A lot of different things happen in each of these buckets, and I&#8217;m still figuring out my process in general, but I realized this schema is a pretty strong fit in the context of using LLMs. </p><p>I will briefly describe each stage before explaining where models come into play. </p><h4>Pre-Writing</h4><p>Pre-writing is a catchall term for anything I do before I actually begin writing the first words of an article.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> This most clearly covers background research, but extends to ideating, note-taking, organizing, and some amount of rough outlining. It sometimes includes data preprocessing &amp; coding&#8212;a lot of the charts you see in my political analysis posts are ones I developed in R or Python, and I often construct them before writing a single word of an article.</p><p>I use LLMs liberally here. </p><p>This is increasingly known, but AI is fantastic at research and for getting up-to-speed on a topic. For my <a href="https://benjamingrayzel.substack.com/p/canadian-polls-are-going-haywire">post about the Canadian Election</a>, I <a href="https://chatgpt.com/c/67c3a94e-d500-8009-be6a-9f22ebd196f3">asked GPT for a deep research</a> pull to familiarize myself with Canada&#8217;s electoral system. The resources that surface can be invaluable,<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> and I&#8217;ve found models to be a generally decent gut-check about a topic. </p><p>When I began posting I would mostly design <a href="https://benjamingrayzel.substack.com/p/analysis-trump-tried-out-a-more-diplomatic">my own plots</a> with R code and data downloaded in a CSV format. This is inverted: I now mostly have language models code each of my plots end-to-end. I usually have it revise the generated chart a few times, and occasionally tweak the generated code, but LLMs are now well beyond the point where they mess up one-shot plots.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a></p><p>If I have only a rough idea for a piece, or want to stress-test an opinion I&#8217;m not yet confident about, I will go back-and-forth with a chatbot and explore the idea. This will often be meandering; I might ask for counterexamples or creative exploration of a brain-dump of thoughts on a subject.</p><p>Less frequently, I&#8217;ll have a model recommend a general structure for a piece. I find this most useful when I&#8217;m uncertain what I actually want to write. I almost never use a full outline, but often adopt section ideas and some suggestions about how to chunk my pieces.</p><p>My notes are usually a chaotic collection of half-baked thoughts I write down and a copy-paste of phrases or facts relevant to the article at hand. Many of these copy-pasted phrases are taken from an AI chat; just as many are not. </p><h4>Drafting</h4><p>Drafting is exactly what it sounds like: the time I construct the piece. I usually do this in one go, skipping over some sections and jumping around, then go through the article start-to-finish until I have what I think of as a complete first draft.</p><p>That draft is overwhelmingly mine. </p><p>I don&#8217;t really use AI here, and when I do it&#8217;s in a very narrow way.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a> I&#8217;ll sometimes use GPT as a &#8216;sentence thesaurus&#8217; when struggling with how to frame something (e.g. <em>suggest 3 alternate ways to phrase this</em>: <em>[sentence]</em>).<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a> I&#8217;ll occasionally use it to generate ideas for section headers (e.g. <em>Read the paragraphs below then suggest five dry and funny short section headers, vaguely in the style of The Economist.</em>&#8221;). </p><p>If I am truly stuck I might ask one to &#8220;<em>suggest ideas about how to bridge the gap between the two article sections below,</em>&#8221; and see if the suggestions spark anything for me. For the most part though, I try to leave all of these types of edits to the revision process. I sometimes write placeholders to come back to later.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-7" href="#footnote-7" target="_self">7</a></p><h4>Revising</h4><p>There is a fuzzy boundary between revising and drafting for me, and I usually categorize the first &#8216;revision&#8217; pass as part of the draft. The threshold is when I have something &#8216;complete,&#8217; meaning that it works as a through-line piece. I might still have some placeholders, but these are clear and contained and the piece works around them.</p><p>My process for AI in revising is the most tractable section of this article. I feed the model my complete article draft followed by a prompt like this:</p><blockquote><p>Please act as an editor and review this draft. In a short overview, comment on the piece as a whole and offer some notes. Make all specific targeted edits in a bulleted list, keeping the suggestions precise. Do not re-write the draft yourself.</p></blockquote><p>I first review the high-level criticism. If the model has any powerful general notes I sometimes go back to the drafting stage. This usually doesn&#8217;t happen, and I mostly only skim through the overview, but it once pointed out that a section was based on largely out-of-date sources and more recent news was indicating a new direction.</p><p>The second part is a full AI-generated copy-edit pass of the article, segmented out into targeted bullets. I go through each bullet item line-by-line and decide whether to accept, reject, or change the model&#8217;s suggested edit.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-8" href="#footnote-8" target="_self">8</a> Sometimes this is a grammar pass, sometimes it&#8217;s a suggested rephrasing, and sometimes it&#8217;s more substantive&#8212;a suggested paragraph rewrite or a nudge to review more context. </p><p>When I finish these suggested revisions, I go back and edit the original prompt with the revised draft. I&#8217;ll usually do this two or three times, using both Claude and ChatGPT in this revision step.</p><p>When I reach a point where I reject most of the bulleted suggestions, it&#8217;s time to publish.</p><h3>My Only Rule</h3><p>This article is not written to establish a set of rules I promise to follow about my use of AI in writing. It is a good-faith effort to represent my LLM use accurately, and it is honest, but also very general.</p><p>I want to make one rule for myself though; one promise and one commitment to anyone reading this. If this good-faith description ever becomes inaccurate&#8212;if I ever publish an article that does not generally use less than or equal to the amount of AI described in each section&#8212;I will tell you, and I will tell you how.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-9" href="#footnote-9" target="_self">9</a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Especially for accounts with paid subscribers.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>It can last a shockingly long time, as I often procrastinate the &#8216;hard&#8217; part of drafting.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>In the Canadian polling example ChatGPT found <a href="https://338canada.com/">338Canada</a>,  which became the data backbone of every chart in that article.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>I do check charts for accuracy though, and still often explore a dataset myself in R when I&#8217;m not trying to create something polished.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>I didn&#8217;t use it at all for this article, for example.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>The median behavior is that I take one clause (maybe five words?) across the model&#8217;s suggestions.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false" target="_self">7</a><div class="footnote-content"><p>And very much prefer this in the abstract. If I&#8217;m writing smoothly I tend to just move on, while switching tabs usually means I&#8217;m having trouble entering flow.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false" target="_self">8</a><div class="footnote-content"><p>Switching back-and-forth between the editor and the web interface; I don&#8217;t have any suggestion feature I hit &#8216;accept&#8217; on.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-9" href="#footnote-anchor-9" class="footnote-number" contenteditable="false" target="_self">9</a><div class="footnote-content"><p>And it might happen soon; I have some interesting ideas.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Erdős #659]]></title><description><![CDATA[I did something cool with AI]]></description><link>https://benjamingrayzel.substack.com/p/erdos-659</link><guid isPermaLink="false">https://benjamingrayzel.substack.com/p/erdos-659</guid><dc:creator><![CDATA[Benjamin Grayzel]]></dc:creator><pubDate>Sun, 05 Apr 2026 06:55:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4P6h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This winter, I worked on an AI-ideated resolution to the 659th problem posed by Paul Erd&#337;s. I had spent a good chunk of my holiday attempting to verify the model&#8217;s solution. My attitude was first dismissive, then uncertain, then excited. I shared the results with two of my professors<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> for a second look then, on January 13th, submitted it to <a href="https://www.erdosproblems.com/">the Erd&#337;s forum</a>.</p><p>Five hours later, about to go to bed, I checked the web forum. My heart started pounding. The problem page was now green, and I had <a href="https://www.erdosproblems.com/forum/thread/659">two</a> direct replies from <em>Terence Tao</em>. My write-up had been accepted.</p><p>The gap the model closed was much smaller than I initially realized. The novelty amounted to pointing out a minor case analysis no one had previously caught, but my note stands&#8212;to the very best of my knowledge&#8212;as the first complete solution to this problem.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><div><hr></div><p>This post is part of a series on Erd&#337;s #659 and the broader field of AI-for-Math. I have a lot to say about the topic, but right now I&#8217;m only trying to present the problem in a clean, publicly accessible way. My hope is that anyone, even people who hate math, can read this and emerge feeling like they understand the problem.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p><h1>The Problem</h1><h4>Distinct Distances</h4><p>This problem focuses on distances and points, and particularly the idea of &#8220;distinct distances&#8221; within a collection of points. We say that a set of points has &#8220;distinct distances&#8221; equal to the number of <em>unique</em> distances between points in the set. </p><p>For one example: the set of points [(0, 0), (2, 0), (0, 2), and (2, 2)] make a square with two &#8220;distinct distances:&#8221; the edge and the diagonal. But if we swap out the point (2, 0) for <strong>(</strong>3, 0<strong>)</strong>, we now have five distinct distances:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L6zb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L6zb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 424w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 848w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 1272w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L6zb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png" width="1456" height="517" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:517,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:834202,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L6zb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 424w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 848w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 1272w, https://substackcdn.com/image/fetch/$s_!L6zb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4a83fad-db2f-45c5-b134-6718e88b8418_2406x854.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>This idea&#8212;the number of &#8220;distinct distances&#8221; in a set&#8212;is key to understanding the problem.</p><h4>Problem #659</h4><p>The problem I resolved with AI, as presented on the <a href="https://www.erdosproblems.com/659">Erd&#337;s Problems forum</a>, has three clauses.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4P6h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4P6h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 424w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 848w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 1272w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4P6h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png" width="467" height="238.9765458422175" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:938,&quot;resizeWidth&quot;:467,&quot;bytes&quot;:68353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4P6h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 424w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 848w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 1272w, https://substackcdn.com/image/fetch/$s_!4P6h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2385fd7c-8d1f-4867-827b-0479f5e6e062_938x480.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h5><em>Is there a set of n points in R2</em></h5><p>This clause is simple: we need to choose a set of <em>n</em> points. </p><p>Instead of picking four specific points like we did above, we need to pick a set of points based on some rule &#8212;an equation&#8212; that tells us <em>how</em> to select these points (R2 is a fancy way of saying that these are your ordinary, (<em>x, y)</em> points). </p><p>This rule/equation could just be the set [(n, 1)] for every whole number <em>n</em>.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a> If <em>n = 6</em>, the set is [(1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1)]. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ious!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ious!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 424w, https://substackcdn.com/image/fetch/$s_!Ious!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 848w, https://substackcdn.com/image/fetch/$s_!Ious!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 1272w, https://substackcdn.com/image/fetch/$s_!Ious!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ious!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png" width="962" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8996288c-df67-4756-aad1-314b8f202bef_962x288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:962,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28734,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ious!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 424w, https://substackcdn.com/image/fetch/$s_!Ious!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 848w, https://substackcdn.com/image/fetch/$s_!Ious!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 1272w, https://substackcdn.com/image/fetch/$s_!Ious!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8996288c-df67-4756-aad1-314b8f202bef_962x288.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The set [(n, 1)] where n = 6. The points are [(1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1)].</figcaption></figure></div><p>So the first step is just to pick a set of points.</p><h5>Such that every subset of 4 points determines at least 3 (distinct) distances</h5><p>Now that I have a set, I need to be able to pick 4 points out of this set and know<em> </em>that<em> </em>these four points determines at least 3 distinct distances. </p><p>Think back to my square above. If the set contains the four points [(0, 0), (2, 0), (0, 2), and (2, 2)], it will fail this condition. </p><p>A valid set <em>can </em>contain [(0, 0), <strong>(3, 0)</strong>, (0, 2), (2, 2)], as we showed above how this determines <em>five</em> distinct distances, but I can never add the point (2, 0). In fact, <em>any set that contains a square will fail this condition</em>. </p><p>At this point, you can hopefully kind of see how it might be easy to prove that a set <em>fails </em>this condition, but tricky to prove that a set <em>satisfies </em>it. If you understand that, you&#8217;re in a good place.</p><h5>Yet the total number of distinct distances is &#171; n/&#8730;(log n)</h5><p>This final clause is a constraint on the <em>total</em> number of distinct distances in the set.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a></p><p>What does this mean? The set [(0,1), (1,1), (2,1)] has 2 distinct distances. If I add (3,1) I have 3 distinct distances, and with (4,1) I now have 4.</p><p>More generally, the set [(n, 1)] will always have <em>n - 1</em> distinct distances.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oiPj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oiPj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oiPj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png" width="607" height="331.0151098901099" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:607,&quot;bytes&quot;:8195091,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oiPj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!oiPj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5824a0a-37d4-4099-a4ce-9a5d8729cb4d_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: Nano Banana Pro (Google AI)</figcaption></figure></div><p>The notation &#171; is a little confusing here. We can understand it as asking whether the number of distinct distances in our set is less than or &#8220;on the order of&#8221; some limiting value.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a> This means that when we construct our set of <em>n</em> points, the constraint asks <em>whether it</em> <em>contains a number of distinct distances on the order of some number</em>. That number happens to be <em>n/</em>&#8730;<em>(log n)</em>. </p><p>Don&#8217;t worry too much about the &#171; notation or the value itself. What matters is that you understand how this constraint means that a set needs to have <em>some limit</em> on the number of distinct distances <em>as n gets bigger</em>. </p><div><hr></div><p>That&#8217;s the problem! We need to be able to figure out a rule to construct a set that satisfies the two properties:</p><ol><li><p>Every subset of 4 points determines at least 3 (distinct) distances, and</p></li><li><p>The total number of distinct distances is &#171; n/&#8730;(log n)</p></li></ol><p>Finding such a set resolves this problem.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-7" href="#footnote-7" target="_self">7</a></p><h1>The Solution</h1><p>The solution is to take a regular grid, and stretch it by &#8730;2.</p><p>Gemini 3.0 Pro, in an answer later refined by GPT-5.2 (extended thinking), found a set that satisfies those two conditions:<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-8" href="#footnote-8" target="_self">8</a></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\{(x,\\sqrt2\\,y): 0\\le x,y\\le m-1\\}\n&quot;,&quot;id&quot;:&quot;TRGRNWQEPD&quot;}" data-component-name="LatexBlockToDOM"></div><p>This is written in a formal syntax, but it&#8217;s a fairly simple rule. The set of all positive points looks like this:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\{(x, y): 0\\le x,y\\le m-1\\}\n&quot;,&quot;id&quot;:&quot;UWZRNLBUWU&quot;}" data-component-name="LatexBlockToDOM"></div><p>You can think of it as a rule and an explanation. The &#8216;rule&#8217; is that we are including all <em>(x, y)</em> pairs to the set. The &#8216;explanation&#8217; is that</p><ul><li><p><em>x</em> is between <em>0</em> and <em>m - 1</em>, and</p></li><li><p><em>y</em> is also between <em>0</em> and <em>m - 1</em>.</p></li></ul><p>In this case, <em>m </em>can be any number. Here is an example where <em>m = 5.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uL21!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uL21!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 424w, https://substackcdn.com/image/fetch/$s_!uL21!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 848w, https://substackcdn.com/image/fetch/$s_!uL21!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 1272w, https://substackcdn.com/image/fetch/$s_!uL21!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uL21!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png" width="320" height="315.211970074813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:790,&quot;width&quot;:802,&quot;resizeWidth&quot;:320,&quot;bytes&quot;:50624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uL21!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 424w, https://substackcdn.com/image/fetch/$s_!uL21!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 848w, https://substackcdn.com/image/fetch/$s_!uL21!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 1272w, https://substackcdn.com/image/fetch/$s_!uL21!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f30e6cd-ad57-4336-95c3-b60f3cef88c9_802x790.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>How many items are in this set? We can count 25 points in this example, and this makes sense&#8212;the set contains 5 rows of 5. </p><p>In fact, the size of the set, the number of <em>n </em>points in it, is </p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;n = m*m = m^2.&quot;,&quot;id&quot;:&quot;BMUFKFLYRY&quot;}" data-component-name="LatexBlockToDOM"></div><h4>The Squashed Lattice</h4><p>Now back to the solution. There is only one difference here: instead of picking all <em>x </em>and <em>y </em>values, we pick all <em>x</em> values and all <em>y</em> values times the square root of two.</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;(x, y) \\rightarrow (x,\\sqrt2\\,y)&quot;,&quot;id&quot;:&quot;LDNPTMDNLK&quot;}" data-component-name="LatexBlockToDOM"></div><p>As the square root of two is about 1.4, the point (1, 1) would become (1, ~1.4) and (2, 2) &#8594; (2, ~2.8). This is what it looks like when <em>m = 5</em>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZHAb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZHAb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 424w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 848w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZHAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png" width="350" height="336.15819209039546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1020,&quot;width&quot;:1062,&quot;resizeWidth&quot;:350,&quot;bytes&quot;:70019,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZHAb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 424w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 848w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 1272w, https://substackcdn.com/image/fetch/$s_!ZHAb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92145b60-672e-467f-8131-d7925d50c0ae_1062x1020.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Squashed Lattice for <em>m = 5</em>.</figcaption></figure></div><p>It is sometimes informally called a &#8216;squashed lattice,&#8217; because it&#8217;s a regular grid pattern that looks kind of squished.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-9" href="#footnote-9" target="_self">9</a></p><h4>The Forbidden Shapes</h4><p>Now, remember we need to show two things about this set. The first is </p><blockquote><p><em>every subset of 4 points determines at least 3 (distinct) distances</em>. </p></blockquote><p>How can we show this?</p><p>The very first comment on the Erd&#337;s forum offers an approach. Desmond Weisenberg pointed out that there are only six ways&#8212;six shapes&#8212;that 4 points can <em>fail</em> this condition. These are the six:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Vej!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Vej!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 424w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 848w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 1272w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Vej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png" width="570" height="359.49409780775716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:748,&quot;width&quot;:1186,&quot;resizeWidth&quot;:570,&quot;bytes&quot;:190085,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://benjamingrayzel.substack.com/i/185136613?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2Vej!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 424w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 848w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 1272w, https://substackcdn.com/image/fetch/$s_!2Vej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59de87d-f6c6-4afa-9656-3f327f131558_1186x748.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With a little bit of searching, Gemini and GPT were able to find a <a href="https://www.antonellaperucca.net/didactics/4points2distances.pdf">source</a> to prove it. This is great! We no longer need to worry about weird abstract theory; as long as we know that none of these shapes appear in the squashed lattice we can prove the first condition is true. </p><p>I don&#8217;t want to go through the proof in detail, but this is how the rest conceptually works:</p><blockquote><p>Of the six forbidden configurations, four contain an equilateral triangle, so it is enough to show that equilateral triangles, squares, and the &#8220;regular-pentagon trapezoid&#8221;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-10" href="#footnote-10" target="_self">10</a> do not appear in the squashed lattice.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-11" href="#footnote-11" target="_self">11</a></p><p>This is not too difficult to prove: if all vertical sides are the length of a whole number, and all horizontal sides are a multiple of &#8730;2, then they can never possibly equal one another. This style of argument works for all three shapes, and we can therefore show that this squashed lattice satisfies the local constraint.</p></blockquote><h5>A Comment on Novelty</h5><p>I mentioned above that the gap here was much smaller than I initially realized. That gap is nothing more than the inclusion of the Regular-Pentagon Trapezoid to the case analysis. The idea to stretch the lattice by an irrational number had been proposed, the five other shapes had been excluded, and the bound below had been proven.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-12" href="#footnote-12" target="_self">12</a></p><h4>The Global Bound</h4><p>The second thing we need to show is that </p><blockquote><p><em>The total number of distinct distances is &#171; n/</em>&#8730;<em>(log n).</em></p></blockquote><p>This part is not intuitive. </p><p>At a high level, the approach is to manipulate the problem to resemble a pattern from number theory, then pluck out a theorem that completes the missing gap. Unlike with the forbidden shapes constraint above, there isn&#8217;t much to &#8216;get.&#8217; Gemini drew from its extensive knowledge of math theorems, pattern-matched one that almost proved the constraint, and manipulated the problem to make it fit.</p><h5>Manipulation</h5><p>If you take any two points from the set and square the distance between them, it will look something like this:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;x^2 + 2y^2&quot;,&quot;id&quot;:&quot;FPJJXQPOYF&quot;}" data-component-name="LatexBlockToDOM"></div><p>This comes from the pythagorean theorem.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-13" href="#footnote-13" target="_self">13</a></p><p>Remember that </p><blockquote><ol><li><p><em>x</em> is between <em>0</em> and <em>m - 1</em>, and</p></li><li><p><em>y</em> is also between <em>0</em> and <em>m - 1</em>.</p></li></ol></blockquote><p>And since both <em>x</em> and <em>y</em> are less than m, the question becomes:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;x^2 + 2y^2 < m^2 + 2m^2 = 3m^2&quot;,&quot;id&quot;:&quot;DBEZVQWJZN&quot;}" data-component-name="LatexBlockToDOM"></div><p>And so we know that all squared distances are less than 3m^2, but greater than 0. </p><p>Why is this helpful?</p><p>The problem is now about counting outputs from a formula. Instead of asking how many distances the set creates, we can ask how many numbers (up to 3m^2) can be written in the form</p><blockquote><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;x^2+2y^2&quot;,&quot;id&quot;:&quot;FHUGLSKTRV&quot;}" data-component-name="LatexBlockToDOM"></div></blockquote><p>where <em>x</em> and <em>y</em> are both whole numbers less than <em>m</em>. This turns the question from a counting problem into one from number theory, and there is a theorem here that deals with this exact question.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-14" href="#footnote-14" target="_self">14</a></p><p><strong>Bernays&#8217; Theorem (informal):</strong></p><blockquote><p>Numbers that can be written in the form</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;x^2+2y^2 < N&quot;,&quot;id&quot;:&quot;MAJDVMFGBM&quot;}" data-component-name="LatexBlockToDOM"></div><p>get less and less common as the upper bound N gets larger, growing at the rate</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\frac{N}{\\sqrt{\\log N}}.&quot;,&quot;id&quot;:&quot;FHIOBWGIRG&quot;}" data-component-name="LatexBlockToDOM"></div></blockquote><p>We have our bound! </p><p>I&#8217;m skipping over a few steps, and simplifying it for the sake of the example, but honestly not by much. All of that manipulation above was to show that the theorem applies to this set and therefore satisfies the second condition.</p><div><hr></div><p>The next post in this series will discuss my process and personal experience working on the problem. All commentary will be in that post; this is mostly written as a reference to help contextualize the problem (and hopefully provide a legible example). I want to make one point though:</p><h4>Why Does This Matter?</h4><p>As a standalone math result, it really doesn&#8217;t.</p><p>This is a very specific version of a series of problems in combinatorics<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-15" href="#footnote-15" target="_self">15</a> which are already pretty niche. Adam Sheffer had already written about this problem and made the connection between the forbidden shapes and Bernay&#8217;s theorem. Prior work was only missing the regular pentagon trapezoid in the case analysis of the forbidden shapes.</p><p>I did write it up as an arXiv note, and feel reasonably confident that it&#8217;s worth adding there<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-16" href="#footnote-16" target="_self">16</a> as a reference for problem, but this is far from a publishable result. It&#8217;s interesting as a case analysis of the kinds of problems AI can solve, and it&#8217;s worth clearing away the &#8216;low-hanging fruit&#8217; of the Erd&#337;s problems, but this finding will not make waves.</p><p>It&#8217;s still pretty cool.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Shoutout to Professors Doyle and Winkler!</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>A team from DeepMind independently found an equivalent solution using a custom gemini-based agent. They <a href="https://github.com/google-deepmind/superhuman/blob/main/aletheia/Aletheia.pdf">published this result</a> as part of a large survey of Erdos problems around a month after my submission.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>If you instead like math and have a reasonably strong background in it, you might enjoy cross-referencing this post with the <a href="https://arxiv.org/pdf/2601.09102">formal write-up</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Also known as a line.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>I know <em>n/</em>&#8730;<em>(log n) </em>is ugly. We don&#8217;t actually work with it; if it helps, you can think of it as just Some Large Number<em>.</em></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>For those who are a little more comfortable with the math, it&#8217;s the same as big O notation and/or multiplying by some scalar. <em>f(n) &#171; g(n)</em> is the same as <em>f(n) = O(g(n)) </em>is the same as <em>f(x) &lt; C*(g(n)) </em>for some C in <strong>R.</strong></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false" target="_self">7</a><div class="footnote-content"><p>Proving that no such set exists would also resolve this problem, although this is impossible (as we now know such a set <em>does</em> exist).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false" target="_self">8</a><div class="footnote-content"><p>I made some syntax changes (i&#8594;x, j&#8594;y, m&#8594;n) for this write up, but you can find it on both the <a href="https://www.erdosproblems.com/forum/thread/659">Erd&#337;s comment thread</a> and in my <a href="https://arxiv.org/pdf/2601.09102">arXiv note</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-9" href="#footnote-anchor-9" class="footnote-number" contenteditable="false" target="_self">9</a><div class="footnote-content"><p>More precisely, it&#8217;s an anisotropic lattice. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-10" href="#footnote-anchor-10" class="footnote-number" contenteditable="false" target="_self">10</a><div class="footnote-content"><p>Or the isosceles trapezoid formed by four vertices of a regular pentagon.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-11" href="#footnote-anchor-11" class="footnote-number" contenteditable="false" target="_self">11</a><div class="footnote-content"><p>Most people can look at the picture above and immediately see that no squares exist in the grid.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-12" href="#footnote-anchor-12" class="footnote-number" contenteditable="false" target="_self">12</a><div class="footnote-content"><p>You can find all three in <a href="https://adamsheffer.wordpress.com/2014/07/16/point-sets-with-few-distinct-distances/">this blog post</a> from NYU Professor Adam Sheffer.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-13" href="#footnote-anchor-13" class="footnote-number" contenteditable="false" target="_self">13</a><div class="footnote-content"><p>The 2 multiplying <em>y</em> comes from squaring the &#8730;2.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-14" href="#footnote-anchor-14" class="footnote-number" contenteditable="false" target="_self">14</a><div class="footnote-content"><p>I had never heard of it before, but Gemini and GPT (and Terry Tao) all knew it immediately.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-15" href="#footnote-anchor-15" class="footnote-number" contenteditable="false" target="_self">15</a><div class="footnote-content"><p>It&#8217;s drawn from the <a href="https://arxiv.org/pdf/1406.1949">family of problems</a> of bounding distinct distances, constrained by drawing <em>k</em> points from a set with <em>l </em>distinct distances. This is the case where <em>k = 4 </em>and <em>l = 3.</em></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-16" href="#footnote-anchor-16" class="footnote-number" contenteditable="false" target="_self">16</a><div class="footnote-content"><p>ArXiv is free and open, there are not many barriers to putting work on it. Math journals have much higher standards.</p></div></div>]]></content:encoded></item></channel></rss>