/-
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 FormalConjecturesUtilErdős Problem 41
Reference: erdosproblems.com/41
open Filter Setnamespace Erdos41variable {α : Type} [AddCommMonoid α]
NtupleCondition A n says that the sum of n elements of A determines the summands,
counted with multiplicity and up to permutation.
Multisets allow a summand to occur more than once, while multiset equality identifies precisely the trivial coincidences obtained by reordering the summands.
def NtupleCondition (A : Set α) (n : ℕ) : Prop :=
∀ I J : Multiset α,
(∀ i ∈ I, i ∈ A) →
(∀ j ∈ J, j ∈ A) →
I.card = n →
J.card = n →
I.sum = J.sum →
I = JLet $A \subset \mathbb{N}$ be an infinite set such that the triple sums $a+b+c$ are all distinct for $a,b,c \in A$ (aside from the trivial coincidences). Is it true that $$\liminf_{N \to \infty} \frac{\lvert A \cap {1,\ldots,N}\rvert}{N^{1/3}}=0?$$
@[category research open, AMS 11]
theorem erdos_41 (A : Set ℕ) (h_triple : NtupleCondition A 3) (h_infinite : A.Infinite) :
Filter.atTop.liminf (fun N => (A ∩ Icc 1 N).ncard / (N : ℝ)^(1/3 : ℝ)) = 0 := A:Set ℕh_triple:NtupleCondition A 3h_infinite:A.Infinite⊢ liminf (fun N ↦ ↑(A ∩ Icc 1 N).ncard / ↑N ^ (1 / 3)) atTop = 0
All goals completed! 🐙Erdős proved that if the pairwise sums $a+b$ are all distinct aside from the trivial coincidences, then $$\liminf_{N \to \infty} \frac{\lvert A \cap {1,\ldots,N}\rvert}{N^{1/2}}=0.$$
@[category research solved, AMS 11]
theorem erdos_41.variants.pairwise (A : Set ℕ) (hA₂ : NtupleCondition A 2) (hA : A.Infinite) :
Filter.atTop.liminf (fun N => (A ∩ Icc 1 N).ncard / (N : ℝ).sqrt) = 0 := A:Set ℕhA₂:NtupleCondition A 2hA:A.Infinite⊢ liminf (fun N ↦ ↑(A ∩ Icc 1 N).ncard / √↑N) atTop = 0
All goals completed! 🐙end Erdos41