FormalConjectures/ErdosProblems/707.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
11 declarations, 8 contain sorry, 0 declared as axioms
Erdős Problem 707: Embedding Sidon Sets in Perfect Difference Sets
References:
- erdosproblems.com/707
- arxiv/2510.19804 Boris Alexeev and Dustin G. Mixon, Forbidden Sidon subsets of perfect difference sets, featuring a human-assisted proof (2025)
- [Ha47] Marshall Hall, Jr., Cyclic projective planes, Duke Math. J. 14 (1947), 1079–1090.
Let A ⊆ ℕ be a finite Sidon set. Is there some set B with A ⊆ B which is a perfect
difference set modulo p^2 + p + 1 for some prime power p?
This problem is related to Erdős Problem 329 about the maximum density of Sidon sets. If this conjecture is true, it would imply that the maximum density of Sidon sets is 1.
Imports (1)
- theorem
Erdos707.erdos_707Erdős Problem 707: It is false that any finite Sidon set can be embedded in a perfect different set modulo some $n$ sorry line 53 sourceSource documentation
Erdős Problem 707: It is false that any finite Sidon set can be embedded in a perfect different set modulo some $n$.
As described in [arxiv/2510.19804], a counterexample is provided in [Ha47], see below. The proof of this has been formalized.
This was formalized in Lean by Alexeev using ChatGPT.
depends on sorry what this means
Statement uses:
Iff,Set,Nat,Set.Finite, IsSidon,Exists,And,GT.gt,OfNat.ofNat,LE.le, IsPerfectDifferenceSet,FalseProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707 : (∀ (A : Set ℕ) (h : A.Finite), IsSidon A → ∃ᵉ (B : Set ℕ) (n > 0), A ⊆ B ∧ IsPerfectDifferenceSet B n) ↔ False := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.prime_powerIt is false that any finite Sidon set can be embedded in a perfect difference set modulop^2 + p + 1for some prime powerpsorry line 66 sourceSource documentation
It is false that any finite Sidon set can be embedded in a perfect difference set modulo
p^2 + p + 1for some prime powerp.As described in [arxiv/2510.19804], a counterexample is provided in [Ha47], see below. The proof of this has been formalized.
depends on sorry what this means
Statement uses:
Iff,Set,Nat,Set.Finite, IsSidon,Exists,And,IsPrimePow,LE.le, IsPerfectDifferenceSet,HAdd.hAdd,HPow.hPow,OfNat.ofNat,FalseProof uses:
Eq.mpr,Not,id,Eq,Eq.trans,iff_false,congrArg,funext,forall_congr,implies_congr,Eq.refl,sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous24 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.prime_power : (∀ (A : Set ℕ) (h : A.Finite), IsSidon A → ∃ (B : Set ℕ) (p : ℕ), IsPrimePow p ∧ A ⊆ B ∧ IsPerfectDifferenceSet B (p^2 + p + 1)) ↔ False := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.primeIt is false that any finite Sidon set can be embedded in a perfect difference set modulop^2 + p + 1for some primepsorry line 80 sourceSource documentation
It is false that any finite Sidon set can be embedded in a perfect difference set modulo
p^2 + p + 1for some primep.As described in [arxiv/2510.19804], a counterexample is provided in [Ha47], see below. The proof of this has been formalized.
depends on sorry what this means
Statement uses:
Iff,Set,Nat,Set.Finite, IsSidon,Exists,And,Nat.Prime,LE.le, IsPerfectDifferenceSet,HAdd.hAdd,HPow.hPow,OfNat.ofNat,FalseProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.prime : (∀ (A : Set ℕ) (h : A.Finite), IsSidon A → ∃ᵉ (B : Set ℕ) (p : ℕ), p.Prime ∧ A ⊆ B ∧ IsPerfectDifferenceSet B (p^2 + p + 1)) ↔ False := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.counterexample_primeAlexeev and Mixon [arxiv/2510.19804] have disproved this conjecture, proving that $\{1,2,4,8\}$ cannot be extended to a perfect difference set modulo $p^2+p+1$ for any prime $p$ sorry line 91 sourceSource documentation
Alexeev and Mixon [arxiv/2510.19804] have disproved this conjecture, proving that $\{1,2,4,8\}$ cannot be extended to a perfect difference set modulo $p^2+p+1$ for any prime $p$.
depends on sorry what this means
Statement uses:
Set,Nat,Eq,Insert.insert,OfNat.ofNat,Singleton.singleton,And,Finite, IsSidon,Prime,LE.le,Not, IsPerfectDifferenceSet,HAdd.hAdd,HPow.hPowProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous26 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.counterexample_prime (A : Set ℕ) (hA : A = {1, 2, 4, 8}) : Finite A ∧ IsSidon A ∧ ∀ (B : Set ℕ) (p : ℕ), Prime p → A ⊆ B → ¬IsPerfectDifferenceSet B (p ^ 2 + p + 1) := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.counterexample_mian_chowlaAlexeev and Mixon [arxiv/2510.19804] have disproved this conjecture, showing that $\{1, 2, 4, 8, 13\}$ cannot be extended to any perfect difference set modulo a positive integer sorry line 105 sourceSource documentation
Alexeev and Mixon [arxiv/2510.19804] have disproved this conjecture, showing that $\{1, 2, 4, 8, 13\}$ cannot be extended to any perfect difference set modulo a positive integer. The modulus
0is excluded, as inerdos_707:IsPerfectDifferenceSet B 0describes an infinite perfect difference set inℤ, and every finite Sidon set extends to one.depends on sorry what this means
Statement uses:
Set,Nat,Eq,Insert.insert,OfNat.ofNat,Singleton.singleton,And,Finite, IsSidon,LT.lt,LE.le,Not, IsPerfectDifferenceSetProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous14 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.counterexample_mian_chowla (A : Set ℕ) (hA : A = {1, 2, 4, 8, 13}) : Finite A ∧ IsSidon A ∧ ∀ (B : Set ℕ) (n : ℕ), 0 < n → A ⊆ B → ¬IsPerfectDifferenceSet B n := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.counterexample_hallThis conjecture was actually first disproved by Hall in 1947 [Ha47], long before Erdős asked this question sorry line 118 sourceSource documentation
This conjecture was actually first disproved by Hall in 1947 [Ha47], long before Erdős asked this question. A counterexample for any modulus from from [Ha47] in the paragraph following Theorem 4.3, where it was given as $\{-8, -6, 0, 1, 4\}$, but this can be shifted to natural numbers as pointed out in [arxiv/2510.19804].
depends on sorry what this means
Statement uses:
Set,Nat,Eq,Insert.insert,OfNat.ofNat,Singleton.singleton,And,Finite, IsSidon,LT.lt,LE.le,Not, IsPerfectDifferenceSetProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous14 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.counterexample_hall (A : Set ℕ) (hA : A = {1, 3, 9, 10, 13}) : Finite A ∧ IsSidon A ∧ ∀ (B : Set ℕ) (n : ℕ), 0 < n → A ⊆ B → ¬IsPerfectDifferenceSet B n := by …Mentions: IsSidon, IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.perfect_difference_set_size_boundA perfect difference set modulonmust have size≤ √n + 1line 130 sourceSource documentation
A perfect difference set modulo
nmust have size≤ √n + 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,Nat, IsPerfectDifferenceSet,LE.le,Set.ncard,HAdd.hAdd,Nat.sqrt,OfNat.ofNatProof uses:
dite,Set.Finite,Classical.propDecidable,Eq,Eq.mpr,id,congrArg,Eq.trans,congrFun',Nat.sqrt_zero,zero_add,Decidable.byContradiction,Not,Set.Finite.not_infinite,ZMod,Set.ofPred,Ne,Set.Finite.subset,Set.image,Prodand 119 more129 instances, coercions and auxiliary constants left out.
Tactic trace: 32 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.perfect_difference_set_size_bound (B : Set ℕ) (n : ℕ) (hB : IsPerfectDifferenceSet B n) : B.ncard ≤ n.sqrt + 1 := by …Mentions: IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.singer_constructionThe Singer construction gives perfect difference sets forn = p^2 + p + 1wherepis a prime power sorry line 163 sourceSource documentation
The Singer construction gives perfect difference sets for
n = p^2 + p + 1wherepis a prime power.depends on sorry what this means
Statement uses:
Nat,IsPrimePow,Exists,Set,And, IsPerfectDifferenceSet,HAdd.hAdd,HPow.hPow,OfNat.ofNat,Eq,Set.ncardProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.singer_construction (p : ℕ) (hp : IsPrimePow p) : ∃ (B : Set ℕ), IsPerfectDifferenceSet B (p^2 + p + 1) ∧ B.ncard = p + 1 := by …Mentions: IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.example_sidon_setThe set{1, 2, 4}is a Sidon set line 173 sourceSource documentation
The set
{1, 2, 4}is a Sidon set.standard axioms: propext what this means
Statement uses: IsSidon,
Nat,Insert.insert,Set,OfNat.ofNat,Singleton.singletonProof uses:
Membership.mem,Eq,HAdd.hAdd,Or,And,Eq.mp,Eq.trans,congrArg,of_eq_true,True,congr,eq_self,and_self,or_self,Eq.symm,False.elim,False,eq_false_of_decide,Eq.refl,Booland 3 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.example_sidon_set : IsSidon ({1, 2, 4} : Set ℕ) := by …Mentions: IsSidon
- theorem
Erdos707.erdos_707.variants.example_embeddingThe set{1, 2, 4}can be embedded in a perfect difference set modulo 7 line 186 sourceSource documentation
The set
{1, 2, 4}can be embedded in a perfect difference set modulo 7.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Exists,Set,Nat,And,LE.le,Insert.insert,OfNat.ofNat,Singleton.singleton, IsPerfectDifferenceSetProof uses:
Exists.intro,And.intro,Set.Subset.refl,id,Set.MapsTo,Prod,ZMod,IsPerfectDifferenceSet.match_1,HSub.hSub,Set.offDiag,Set.ofPred,Ne,Set.InjOn,Set.SurjOn,Membership.mem,Prod.mk,Or,Eq,Eq.mp,Eq.transand 51 more55 instances, coercions and auxiliary constants left out.
Tactic trace: 52 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.example_embedding : ∃ (B : Set ℕ), {1, 2, 4} ⊆ B ∧ IsPerfectDifferenceSet B 7 := by …Mentions: IsPerfectDifferenceSet
- theorem
Erdos707.erdos_707.variants.small_sidon_setsFor small Sidon sets, we can check the conjecture directly sorry line 220 sourceSource documentation
For small Sidon sets, we can check the conjecture directly.
depends on sorry what this means
Statement uses:
Set,Nat,Set.Finite,LE.le,Set.ncard,OfNat.ofNat, IsSidon,Exists,And,IsPrimePow, IsPerfectDifferenceSet,HAdd.hAdd,HPow.hPowProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous22 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_707.variants.small_sidon_sets (A : Set ℕ) (hA : A.Finite) (h : A.ncard ≤ 3) (hSidon : IsSidon A) : ∃ (B : Set ℕ) (p : ℕ), IsPrimePow p ∧ A ⊆ B ∧ IsPerfectDifferenceSet B (p^2 + p + 1) := by …Mentions: IsSidon, IsPerfectDifferenceSet