/- Copyright 2025 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ import FormalConjecturesUtil

Erdős Problem 97

Reference: erdosproblems.com/97

open EuclideanGeometryopen Real namespace Erdos97

A set of points $A$ has n equidistant points at $p$ if there exist at least $n$ other points in $A$ that are equidistant from $p$.

def HasNEquidistantPointsAt (n : ) (A : Finset ℝ²) (p : ℝ²) : Prop := r : , r > 0 (A.filter fun q dist p q = r).card n

A set of points $A$ has n equidistant points on a set of points $B$ if for every point in $B$, there exist at least $n$ other points in $A$ that are equidistant from it.

def HasNEquidistantPointsOn (n : ) (A : Finset ℝ²) (B : Finset ℝ²) : Prop := p B, HasNEquidistantPointsAt n A p

A set of points $A$ has n equidistant property if for every point in $A$, there exist at least $n$ other points in $A$ that are equidistant from it.

def HasNEquidistantProperty (n : ) (A : Finset ℝ²) : Prop := HasNEquidistantPointsOn n A A

A set of points $A$ has n unit distance points at $p$ if there exist at least $n$ other points in $A$ that are at unit distance from $p$.

def HasNUnitDistancePointsAt (n : ) (A : Finset ℝ²) (p : ℝ²) : Prop := (A.filter fun q dist p q = 1).card n

A set of points $A$ has n unit distance points on a set of points $B$ if for every point in $B$, there exist at least $n$ other points in $A$ that are at unit distance from it.

def HasNUnitDistancePointsOn (n : ) (A : Finset ℝ²) (B : Finset ℝ²) : Prop := p B, HasNUnitDistancePointsAt n A p

A set of points $A$ has n unit distance property if for every point in $A$, there exist at least $n$ other points in $A$ that are at unit distance from it.

def HasNUnitDistanceProperty (n : ) (A : Finset ℝ²) : Prop := HasNUnitDistancePointsOn n A A

Does every convex polygon have a vertex with no other 4 vertices equidistant from it?

@[category research open, AMS 52] theorem declaration uses 'sorry'erdos_97 : answer(sorry) A : Finset ℝ², A.Nonempty ConvexIndep A ¬HasNEquidistantProperty 4 A := True (A : Finset ℝ²), A.Nonempty ConvexIndep A ¬HasNEquidistantProperty 4 A All goals completed! 🐙

Erdős originally conjectured this (in [Er46b]) with no 3 vertices equidistant, but Danzer found a convex polygon on 9 points such that every vertex has three vertices equidistant from it (but this distance depends on the vertex). Danzer's construction is explained in [Er87b].

[Er46b] Erdős, P., On sets of distances of $n$ points. Amer. Math. Monthly (1946), 248-250. [Er87b] Erdős, P., Some combinatorial and metric problems in geometry. Intuitive geometry (Siófok, 1985), 167-177.

@[category research solved, AMS 52] theorem declaration uses 'sorry'erdos_97.variants.three_equidistant : A : Finset ℝ², A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A := A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927]B₃:ℝ² := ![-8756 / 10927 * 3, 26738 / 10927] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927]B₃:ℝ² := ![-8756 / 10927 * 3, 26738 / 10927]C₁:ℝ² := ![-10753 / 18529 * 3, -44665 / 18529] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927]B₃:ℝ² := ![-8756 / 10927 * 3, 26738 / 10927]C₁:ℝ² := ![-10753 / 18529 * 3, -44665 / 18529]C₂:ℝ² := ![27709 / 18529 * 3, 6203 / 18529] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927]B₃:ℝ² := ![-8756 / 10927 * 3, 26738 / 10927]C₁:ℝ² := ![-10753 / 18529 * 3, -44665 / 18529]C₂:ℝ² := ![27709 / 18529 * 3, 6203 / 18529]C₃:ℝ² := ![-16956 / 18529 * 3, 38462 / 18529] A, A.Nonempty ConvexIndep A HasNEquidistantProperty 3 A A₁:ℝ² := ![-3, -1]A₂:ℝ² := ![3, -1]A₃:ℝ² := ![0, 2]B₁:ℝ² := ![-8991 / 10927 * 3, -26503 / 10927]B₂:ℝ² := ![-17747 / 10947 * 3, -235 / 10927]B₃:ℝ² := ![-8756 / 10927 * 3, 26738 / 10927]C₁:ℝ² := ![-10753 / 18529 * 3, -44665 / 18529]C₂:ℝ² := ![27709 / 18529 * 3, 6203 / 18529]C₃:ℝ² := ![-16956 / 18529 * 3, 38462 / 18529]{A₁, A₂, A₃, B₁, B₂, B₃, C₁, C₂, C₃}.Nonempty ConvexIndep {A₁, A₂, A₃, B₁, B₂, B₃, C₁, C₂, C₃} HasNEquidistantProperty 3 {A₁, A₂, A₃, B₁, B₂, B₃, C₁, C₂, C₃} All goals completed! 🐙

Erdős also conjectured that there is a $k$ for which every convex polygon has a vertex with no other $k$ vertices equidistant from it.

@[category research open, AMS 52] theorem declaration uses 'sorry'erdos_97.variants.k_equidistant : answer(sorry) k : , A : Finset ℝ², A.Nonempty ConvexIndep A ¬HasNEquidistantProperty k A := True k, (A : Finset ℝ²), A.Nonempty ConvexIndep A ¬HasNEquidistantProperty k A All goals completed! 🐙

Fishburn and Reeds [FiRe92] have found a convex polygon on 20 points such that every vertex has three vertices equidistant from it (and this distance is the same for all vertices).

[FiRe92] Fishburn, P. C. and Reeds, J. A., Unit distances between vertices of a convex polygon. Comput. Geom. (1992), 81-91.

@[category research solved, AMS 52] theorem declaration uses 'sorry'erdos_97.variants.three_unit_distance : A : Finset ℝ², A.Nonempty ConvexIndep A HasNUnitDistanceProperty 3 A := A, A.Nonempty ConvexIndep A HasNUnitDistanceProperty 3 A All goals completed! 🐙

A two-part partition ${A, B}$ of $V$ is a cut if the convex hulls of $A$ and $B$ are disjoint.

def IsCut (V A B : Finset ℝ²) : Prop := A B = V Disjoint A B Disjoint (convexHull (A : Set ℝ²)) (convexHull (B : Set ℝ²))

Fishburn and Reeds [FiRe92] also proved that the smallest $n$ for which there exists a convex $n$-gon and a cut ${A, B}$ of its vertices such that $|{b \in B : d(a, b) = 1}| ≥ 3$ for all $a \in A$, and $|{a \in A : d(a, b) = 1}| ≥ 3$ for all $b \in B$, is $n = 20$.

@[category research solved, AMS 52] theorem declaration uses 'sorry'erdos_97.variants.three_unit_distance_cut_min : sInf {n : | (V : Finset ℝ²) (A B : Finset ℝ²), n = V.card ConvexIndep V A.Nonempty B.Nonempty IsCut V A B HasNUnitDistancePointsOn 3 B A HasNUnitDistancePointsOn 3 A B} = 20 := sInf {n | V A B, n = V.card ConvexIndep V A.Nonempty B.Nonempty IsCut V A B HasNUnitDistancePointsOn 3 B A HasNUnitDistancePointsOn 3 A B} = 20 All goals completed! 🐙 end Erdos97