Skip to content

Commit daec756

Browse files
jdhruv555Paul-Lez
andauthored
feat(GreensOpenProblems): 37 (google-deepmind#1736)
Formalizes Ben Green's Open Problem 37: finding the smallest subset of ℕ that contains, for each d = 1, …, N, an arithmetic progression of length k with common difference d. Closes google-deepmind#1593 *References:* - [Ben Green's Open Problem 37](https://people.maths.ox.ac.uk/greenbj/papers/open-problems.pdf#problem.37) - [Green & Tao, *The primes contain arbitrarily long arithmetic progressions* (arXiv:math/0404188)](https://arxiv.org/abs/math/0404188) --------- Co-authored-by: Paul Lezeau <lezeau@google.com>
1 parent 4d5f48f commit daec756

File tree

2 files changed

+83
-0
lines changed
  • FormalConjecturesForMathlib/Combinatorics/AP
  • FormalConjectures/GreensOpenProblems

2 files changed

+83
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/-
2+
Copyright 2026 The Formal Conjectures Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
https://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
-/
16+
17+
import FormalConjectures.Util.ProblemImports
18+
19+
/-!
20+
# Ben Green's Open Problem 37
21+
22+
What is the smallest subset of `ℕ` containing, for each `d = 1, …, N`,
23+
an arithmetic progression of length `k` with common difference `d`?
24+
25+
*References:*
26+
- [Ben Green's Open Problem 37](https://people.maths.ox.ac.uk/greenbj/papers/open-problems.pdf#problem.37)
27+
- [Green & Tao, *The primes contain arbitrarily long arithmetic progressions* (arXiv:math/0404188)](https://arxiv.org/abs/math/0404188)
28+
-/
29+
30+
namespace Green37
31+
32+
open Set Filter
33+
open scoped Asymptotics
34+
35+
/-- `A` contains an arithmetic progression of length `k` and common difference `d` for every `d ∈ {1, …, N}`. -/
36+
def IsAPCover (A : Set ℕ) (N k : ℕ) : Prop := ∀ d, 1 ≤ d ∧ d ≤ N → Set.ContainsAP A k d
37+
38+
/-- The minimum size of a subset of `ℕ` that contains, for each `d = 1, …, N`,
39+
an arithmetic progression of length `k` with common difference `d`. -/
40+
noncomputable def m (N k : ℕ) : ℕ :=
41+
sInf { m | ∃ A : Finset ℕ, A.card = m ∧ IsAPCover (A : Set ℕ) N k }
42+
43+
/--
44+
Given a natural number `N`, what is the smallest size of a subset of `ℕ` that contains, for each `d = 1, …, N`,
45+
an arithmetic progression of length `k` with common difference `d`.
46+
-/
47+
@[category research open, AMS 05 11]
48+
theorem green_37 (N k : ℕ) :
49+
IsLeast { m | ∃ A : Finset ℕ, A.card = m ∧ IsAPCover (A : Set ℕ) N k } (answer(sorry)) := by
50+
sorry
51+
52+
/--
53+
Asymptotic version: determine the asymptotic behavior of `m(N, k)` as `N` grows.
54+
The solver should determine what function `f : ℕ → ℝ` eventually equals `(fun N ↦ (m N k : ℝ))`.
55+
-/
56+
@[category research open, AMS 05 11]
57+
theorem green_37_asymptotic (k : ℕ) :
58+
∀ᶠ N in atTop, (m N k : ℝ) = (answer(sorry) : ℕ → ℝ) N := by
59+
sorry
60+
61+
/-- Determine the asymptotic equivalence class (theta) of `m(N, k)`. -/
62+
@[category research open, AMS 05 11]
63+
theorem green_37_theta (k : ℕ) :
64+
(fun N ↦ (m N k : ℝ)) =Θ[atTop] (answer(sorry) : ℕ → ℝ) := by
65+
sorry
66+
67+
/-- Determine an upper bound (big O) for `m(N, k)`. -/
68+
@[category research open, AMS 05 11]
69+
theorem green_37_bigO (k : ℕ) :
70+
(fun N ↦ (m N k : ℝ)) =O[atTop] (answer(sorry) : ℕ → ℝ) := by
71+
sorry
72+
73+
/-- Determine a strict upper bound (little o) for `m(N, k)`. -/
74+
@[category research open, AMS 05 11]
75+
theorem green_37_littleO (k : ℕ) :
76+
(fun N ↦ (m N k : ℝ)) =o[atTop] (answer(sorry) : ℕ → ℝ) := by
77+
sorry
78+
79+
end Green37

FormalConjecturesForMathlib/Combinatorics/AP/Basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ theorem Set.IsAPOfLengthFree.maxCard_one (N : ℕ) : maxCard 1 N = N := by
228228
nth_rw 2 [← maxCard_zero N]
229229
simp [maxCard, isAPOfLengthFree_one, isAPOfLengthFree_zero]
230230

231+
/-- A set `A` contains an arithmetic progression of length `k` with difference `d`. -/
232+
def Set.ContainsAP (A : Set α) (k : ℕ) (d : α) : Prop :=
233+
∃ a, ∃ s, s ⊆ A ∧ s.IsAPOfLengthWith (k : ℕ∞) a d
234+
231235
def ContainsMonoAPofLength {κ : Type} [Finite κ] {M : Set α}
232236
(coloring : M → κ) (k : ℕ) : Prop :=
233237
∃ c : κ, ∃ ap : Set M, ((·.1) '' ap).IsAPOfLength k ∧

0 commit comments

Comments
 (0)