FormalConjectures/GreensOpenProblems/32.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
15 declarations, 7 contain sorry, 0 declared as axioms
Green's Open Problem 32
Reference:
- [Gr24] Green, Ben. "100 open problems." (2024).
- [Sh20] Shakan, George. "A Large Gap in a Dilate of a Set." SIAM Journal on Discrete Mathematics 34.4 (2020): 2553-2555.
Imports (1)
Imported by 1 file
- def
Green32.HasGapA set $A$ has a gap of length $L$ if there exists $x$ such that $x, x+1, \dots, x+L-1$ are all not in $A$ line 40 sourceSource documentation
A set $A$ has a gap of length $L$ if there exists $x$ such that $x, x+1, \dots, x+L-1$ are all not in $A$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,ZModProof uses:
Exists,LT.lt,Not,Membership.mem,HAdd.hAdd14 instances, coercions and auxiliary constants left out.
def HasGap {p : ℕ} (A : Finset (ZMod p)) (L : ℕ) : Prop := … - theorem
Green32.hasGap_zeroAny set has a gap of length 0 (vacuously true) line 45 sourceSource documentation
Any set has a gap of length 0 (vacuously true).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,ZMod, Green32.HasGap,OfNat.ofNatProof uses:
Exists.intro,LT.lt,Not,Membership.mem,HAdd.hAdd,absurd20 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem hasGap_zero {p : ℕ} (A : Finset (ZMod p)) : HasGap A 0 := by …Mentions: Green32.HasGap
- theorem
Green32.hasGap_emptyThe empty set has a gap of any length line 51 sourceSource documentation
The empty set has a gap of any length.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Green32.HasGap,EmptyCollection.emptyCollection,Finset,ZModProof uses:
Exists.intro,LT.lt,Not,Membership.mem,HAdd.hAdd,OfNat.ofNat,of_eq_true,Eq.trans,False,True,congrArg,zero_add,not_false_eq_true22 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem hasGap_empty {p : ℕ} (L : ℕ) : HasGap (∅ : Finset (ZMod p)) L := by …Mentions: Green32.HasGap
- theorem
Green32.not_hasGap_univThe full set in $\mathbb{Z}/p\mathbb{Z}$ has no gap of positive length line 57 sourceSource documentation
The full set in $\mathbb{Z}/p\mathbb{Z}$ has no gap of positive length.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Not, Green32.HasGap,Finset.univ,ZMod,OfNat.ofNatProof uses:
LT.lt,Membership.mem,Finset,HAdd.hAdd,False,Decidable.byContradiction,False.elim,Eq.mp,Eq.trans,True,congrArg,Nat.cast_zero,add_zero,not_true_eq_false31 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem not_hasGap_univ {p : ℕ} [NeZero p] : ¬ HasGap (Finset.univ : Finset (ZMod p)) 1 := by …Mentions: Green32.HasGap
- theorem
Green32.hasGap_concreteConcrete: $\{0\}$ in $\mathbb{Z}/5\mathbb{Z}$ has a gap of length 4 starting at 1 line 65 sourceSource documentation
Concrete: $\{0\}$ in $\mathbb{Z}/5\mathbb{Z}$ has a gap of length 4 starting at 1.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Green32.HasGap,
OfNat.ofNat,Nat,Singleton.singleton,ZMod,FinsetProof uses:
Exists.intro,LT.lt,Not,Membership.mem,HAdd.hAdd,dite,LE.le,of_decide_eq_true,id,Eq,Bool,Decidable.decide,Bool.true,Eq.refl,Eq.symm,le_antisymm,Nat.ge_of_not_lt,Mathlib.Tactic.IntervalCases.of_lt_right,Nat.rawCast,Mathlib.Meta.NormNum.IsNat.to_raw_eqand 2 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem hasGap_concrete : HasGap ({(0 : ZMod 5)} : Finset (ZMod 5)) 4 := by …Mentions: Green32.HasGap
- def
Green32.HasLargeGapDilateThe generalized problem: for a prime line 75 sourceSource documentation
The generalized problem: for a prime $p$ and a set $A \subset \mathbb{Z}/p\mathbb{Z}$ of size $\lfloor \omega(p) \rfloor$, is there a dilate of $A$ containing a gap of length $\lfloor 100p/\omega(p) \rfloor$?
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,RealProof uses:
Filter.Eventually,Nat.Prime,And,LT.lt,OfNat.ofNat,Finset,ZMod,Eq,Finset.card,Nat.floor,Exists,Units, Green32.HasGap,HSMul.hSMul,HDiv.hDiv,HMul.hMul,Filter.atTop28 instances, coercions and auxiliary constants left out.
def HasLargeGapDilate (ω : ℕ → ℝ) : Prop := …
- theorem
Green32.green_32Let $p$ be a prime and let $A \subset \mathbb{Z}/p\mathbb{Z}$ be a set of size $\lfloor \sqrt{p} \rfloor$ sorry line 86 sourceSource documentation
Let $p$ be a prime and let $A \subset \mathbb{Z}/p\mathbb{Z}$ be a set of size $\lfloor \sqrt{p} \rfloor$. Is there a dilate of $A$ containing a gap of length $100\sqrt{p}$?
depends on sorry what this means
Statement uses:
Iff,True, Green32.HasLargeGapDilate,Nat,Real.sqrt,RealProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat5 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32 : answer(sorry) ↔ HasLargeGapDilate (fun p ↦ Real.sqrt p) := by …Mentions: Green32.HasLargeGapDilate
- theorem
Green32.green_32.variants.sh20_general[Sh20, Theorem 1] implies a gap of at least $\lfloor 2p/|A| - 2 \rfloor$ sorry line 92 sourceSource documentation
[Sh20, Theorem 1] implies a gap of at least $\lfloor 2p/|A| - 2 \rfloor$.
depends on sorry what this means
Statement uses:
Nat,Nat.Prime,Finset,ZMod,LT.lt,OfNat.ofNat,Finset.card,Exists,Units, Green32.HasGap,HSMul.hSMul,Nat.floor,Real,HSub.hSub,HDiv.hDiv,HMul.hMulProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous62 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32.variants.sh20_general : ∀ (p : ℕ), p.Prime → -- Theorem 1 is for any prime p, not just asymptotically ∀ A : Finset (ZMod p), 1 < A.card → ∃ c : (ZMod p)ˣ, HasGap (c • A) ⌊2 * (p : ℝ) / A.card - 2⌋₊ := by …Mentions: c, Green32.HasGap
- theorem
Green32.green_32.variants.sh20_sqrt[Sh20] has used the polynomial method to show that this is true with 100 replaced by 2 [Gr24] sorry line 106 sourceSource documentation
[Sh20] has used the polynomial method to show that this is true with 100 replaced by 2 [Gr24].
Note: More precisely [Sh20, Theorem 1] implies a gap of at least $\lfloor 2p/|A| - 2 \rfloor$. For a set $A$ of size $\lfloor \sqrt{p} \rfloor$, this guarantees a gap of at least $\lfloor 2\sqrt{p} \rfloor - 2$.
depends on sorry what this means
Statement uses:
Filter.Eventually,Nat,Nat.Prime,Finset,ZMod,Eq,Finset.card,Nat.floor,Real,Real.sqrt,Exists,Units, Green32.HasGap,HSMul.hSMul,HSub.hSub,HMul.hMul,OfNat.ofNat,Filter.atTopProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous56 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32.variants.sh20_sqrt : ∀ᶠ p in atTop, p.Prime → ∀ A : Finset (ZMod p), A.card = ⌊Real.sqrt p⌋₊ → ∃ c : (ZMod p)ˣ, HasGap (c • A) (⌊2 * Real.sqrt p⌋₊ - 2) := by …Mentions: c, Green32.HasGap
- theorem
Green32.green_32.variants.szemeredi_regimeIn the regime $\omega(p) \sim c p$, this is Szemerédi's theorem [Gr24] sorry line 114 sourceSource documentation
In the regime $\omega(p) \sim c p$, this is Szemerédi's theorem [Gr24].
depends on sorry what this means
Statement uses:
Real,And,LT.lt,OfNat.ofNat,Nat,Asymptotics.IsEquivalent,Filter.atTop,HMul.hMul, Green32.HasLargeGapDilateProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous31 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32.variants.szemeredi_regime : ∀ c, 0 < c ∧ c < 1 → ∀ ω : ℕ → ℝ, ω ~[atTop] (fun p ↦ c * p) → HasLargeGapDilate ω := by …Mentions: c, Green32.HasLargeGapDilate
- theorem
Green32.green_32.variants.dirichlet_regimeIn the regime $\omega(p) \le c \log p$, this is basically Dirichlet's lower bound for the size of Bohr sets [Gr24] sorry line 128 sourceSource documentation
In the regime $\omega(p) \le c \log p$, this is basically Dirichlet's lower bound for the size of Bohr sets [Gr24].
The lower bound $101 \le \omega(p)$ makes the set size $\lfloor \omega(p) \rfloor$ exceed $100$. With only $100 < \omega(p)$, a function with $100 < \omega(p) < 101$ asks for sets of size $100$ with a gap of length $p - 1$ in some dilate, which is impossible.
depends on sorry what this means
Statement uses:
Exists,Real,And,GT.gt,OfNat.ofNat,Nat,Filter.Eventually,LE.le,HMul.hMul,Real.log,Filter.atTop, Green32.HasLargeGapDilateProof 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 green_32.variants.dirichlet_regime : ∃ c > 0, ∀ ω : ℕ → ℝ, (∀ᶠ p in atTop, 101 ≤ ω p ∧ ω p ≤ c * Real.log p) → HasLargeGapDilate ω := by …Mentions: c, Green32.HasLargeGapDilate
- theorem
Green32.green_32.variants.log_regimeEven what happens in the regime $\omega(p) \sim 10 \log p$ is unclear [Gr24] sorry line 135 sourceSource documentation
Even what happens in the regime $\omega(p) \sim 10 \log p$ is unclear [Gr24].
depends on sorry what this means
Statement uses:
Iff,True,Nat,Real,Asymptotics.IsEquivalent,Filter.atTop,HMul.hMul,OfNat.ofNat,Real.log, Green32.HasLargeGapDilateProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous28 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32.variants.log_regime : answer(sorry) ↔ (∀ ω : ℕ → ℝ, ω ~[atTop] (fun p ↦ 10 * Real.log p) → HasLargeGapDilate ω) := by …Mentions: Green32.HasLargeGapDilate
- def
Green32.HasCosetHoleA set $A$ has a coset hole of size $L$ if there exists a subspace $W$ and a vector $v$ such that the affine space $v + W$ has size at least $L$ and is disjoint from $A$ line 145 sourceSource documentation
A set $A$ has a coset hole of size $L$ if there exists a subspace $W$ and a vector $v$ such that the affine space $v + W$ has size at least $L$ and is disjoint from $A$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, 𝔽₂Proof uses:
Exists,Submodule,ZMod,OfNat.ofNat,Fin,And,LE.le,Nat.card,Subtype,Membership.mem,Not,HAdd.hAdd19 instances, coercions and auxiliary constants left out.
def HasCosetHole {n : ℕ} (A : Finset (𝔽₂ n)) (L : ℕ) : Prop := …Mentions: 𝔽₂
- theorem
Green32.hasCosetHole_emptyThe empty set in $\mathbb{F}_2^n$ has a coset hole (using the trivial subspace) line 151 sourceSource documentation
The empty set in $\mathbb{F}_2^n$ has a coset hole (using the trivial subspace).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Green32.HasCosetHole,EmptyCollection.emptyCollection,Finset, 𝔽₂,OfNat.ofNatProof uses:
Exists.intro,Submodule,ZMod,Fin,Exists,And,LE.le,Nat.card,Subtype,Membership.mem,Not,HAdd.hAdd,Bot.bot,And.intro,Nat.zero_le,of_eq_true,Eq.trans,False,True,congrArgand 2 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem hasCosetHole_empty (n : ℕ) : HasCosetHole (∅ : Finset (𝔽₂ n)) 0 := by …Mentions: Green32.HasCosetHole, 𝔽₂
- theorem
Green32.green_32.variants.finite_fieldTom Sanders' finite field variant [Gr24] sorry line 161 sourceSource documentation
Tom Sanders' finite field variant [Gr24]. If $N = 2^n$ and $A$ is a subset of size $\lfloor \sqrt{N} \rfloor$, then $A^c$ contains a coset of size at least $100\sqrt{N}$ for sufficiently large $n$.
depends on sorry what this means
Statement uses:
Filter.Eventually,Nat,Finset, 𝔽₂,Eq,Finset.card,Nat.floor,Real,Real.sqrt,HPow.hPow,OfNat.ofNat, Green32.HasCosetHole,HMul.hMul,Filter.atTopProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous36 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem green_32.variants.finite_field : ∀ᶠ n in atTop, ∀ A : Finset (𝔽₂ n), A.card = ⌊Real.sqrt (2^n : ℝ)⌋₊ → HasCosetHole A ⌊100 * Real.sqrt (2^n : ℝ)⌋₊ := by …Mentions: 𝔽₂, Green32.HasCosetHole