FormalConjectures/ErdosProblems/346.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
10 declarations, 3 contain sorry, 0 declared as axioms
Erdős Problem 346
References:
- erdosproblems.com/346
- [Gr64d] Graham, R. L., A property of Fibonacci numbers. Fibonacci Quart. (1964), 1-10.
- [ErGr80] Erdős, P. and Graham, R., Old and new problems and results in combinatorial number theory. Monographies de L'Enseignement Mathematique (1980).
Imports (1)
- theorem
Erdos346.erdos_346Is it true that for every lacunary, strongly complete sequenceAthat is not complete whenever infinitely many terms are removed from it,lim A (n + 1) / A n = (1 + √5) / 2? sorry line 45 sourceSource documentation
Is it true that for every lacunary, strongly complete sequence
Athat is not complete whenever infinitely many terms are removed from it,lim A (n + 1) / A n = (1 + √5) / 2?The answer is no. A counterexample recorded at [erdosproblems.com/346] has all successive ratios at least
6 / 5, but has subsequences of successive ratios tending to two different limits,(1 + √5) / 2and(1 + √5) / 2 + 1 / 4.depends on sorry what this means
Statement uses:
Iff,False,Nat, IsLacunary, IsAddStronglyCompleteNatSeq,Set,LE.le,Set.range,Set.Infinite,Not, IsAddComplete,SDiff.sdiff,Filter.Tendsto,Real,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,Filter.atTop,nhds,Real.sqrtProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous42 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_346 : answer(False) ↔ ∀ {A : ℕ → ℕ}, IsLacunary A → IsAddStronglyCompleteNatSeq A → (∀ B : Set ℕ, B ⊆ range A → B.Infinite → ¬ IsAddComplete (range A \ B)) → Tendsto (fun n => A (n + 1) / (A n : ℝ)) atTop (𝓝 ((1 + √5) / 2)) := by …Mentions: IsLacunary, IsAddStronglyCompleteNatSeq, IsAddComplete
- def
Erdos346.fWe define a sequencefby the formulaf n = n.fib - (- 1) ^ nline 51 sourceSource documentation
We define a sequence
fby the formulaf n = n.fib - (- 1) ^ n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
ite,Even,HSub.hSub,Nat.fib,OfNat.ofNat,HAdd.hAdd6 instances, coercions and auxiliary constants left out.
def f (n : ℕ) : ℕ := if Even n then n.fib - 1 else n.fib + 1 …
- theorem
Erdos346.erdos_346.variants.f_isLacunaryThe sequencefis lacunary line 55 sourceSource documentation
The sequence
fis lacunary.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: IsLacunary, Erdos346.f
Proof uses:
Exists.intro,Real,And,GT.gt,OfNat.ofNat,Filter.Eventually,Nat,LT.lt,HMul.hMul,HAdd.hAdd,Filter.atTop,HDiv.hDiv,And.intro,Mathlib.Meta.NormNum.isNNRat_lt_true,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.invand 115 more119 instances, coercions and auxiliary constants left out.
Tactic trace: 38 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.f_isLacunary : IsLacunary f := by …
Mentions: IsLacunary, Erdos346.f
- theorem
Erdos346.erdos_346.variants.f_isAddStronglyCompleteNatSeqThe sequencefis strongly complete, and this is proved in [Gr64d] sorry line 87 sourceSource documentation
The sequence
fis strongly complete, and this is proved in [Gr64d].depends on sorry what this means
Statement uses: IsAddStronglyCompleteNatSeq,
Nat, Erdos346.fProof 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 erdos_346.variants.f_isAddStronglyCompleteNatSeq : IsAddStronglyCompleteNatSeq f := by …
Mentions: IsAddStronglyCompleteNatSeq, Erdos346.f
- theorem
Erdos346.erdos_346.variants.f_add_twoThe recurrencef (m + 2) = f (m + 1) + f m - (-1) ^ mform ≥ 1, written without subtraction line 93 sourceSource documentation
The recurrence
f (m + 2) = f (m + 1) + f m - (-1) ^ mform ≥ 1, written without subtraction.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Eq,HAdd.hAdd, Erdos346.f,ite,EvenProof uses:
Nat.fib,Iff.mpr,LT.lt,Nat.fib_pos,Decidable.byContradiction,Not,Nat.fib_add_two,dite,of_eq_true,Eq.trans,False,True,congrArg,eq_true,not_true_eq_false,not_false_eq_true,Iff,congr,iff_self,Eq.mprand 7 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.f_add_two (m : ℕ) (hm : 1 ≤ m) : f (m + 2) + (if Even m then 1 else 0) = f (m + 1) + f m + (if Even m then 0 else 1) := by …Mentions: Erdos346.f
- theorem
Erdos346.erdos_346.variants.sum_range_ff 0 + ⋯ + f (m - 1) = f (m + 1) - [m even]form ≥ 1; this is [Gr64d, Eq. (1)] line 110 sourceSource documentation
f 0 + ⋯ + f (m - 1) = f (m + 1) - [m even]form ≥ 1; this is [Gr64d, Eq. (1)].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Eq,HAdd.hAdd,Finset.sum,Finset.range, Erdos346.f,ite,EvenProof uses:
Nat.recAux,Decidable.byContradiction,Not,GT.gt,Or,Nat.eq_zero_or_pos,of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,Eq.symm, Erdos346.erdos_346.variants.f_add_two,dite,of_eq_true,Eq.trans,True,congrFun',congrArgand 15 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.sum_range_f (m : ℕ) (hm : 1 ≤ m) : ∑ i ∈ Finset.range m, f i + (if Even m then 1 else 0) = f (m + 1) := by …Mentions: Erdos346.f
- theorem
Erdos346.erdos_346.variants.f_strictMonofis strictly increasing from index4on line 129 sourceSource documentation
fis strictly increasing from index4on.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
StrictMono,Nat, Erdos346.f,HAdd.hAdd,OfNat.ofNatProof uses:
strictMono_nat_of_lt_succ,id,LT.lt,Eq,ite,Even, Erdos346.erdos_346.variants.f_add_two,Decidable.byContradiction,LE.le,Not,Nat.fib,le_trans,of_decide_eq_true,Bool,Decidable.decide,Bool.true,Eq.refl,Nat.fib_mono,dite,Iff.mpand 10 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.f_strictMono : StrictMono fun k => f (4 + k) := by …
Mentions: Erdos346.f
- theorem
Erdos346.erdos_346.variants.f_not_isAddCompleteThe sequencefis not complete whenever infinitely many terms are removed from it, and this is proved in [Gr64d] line 151 sourceSource documentation
The sequence
fis not complete whenever infinitely many terms are removed from it, and this is proved in [Gr64d].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,Nat,LE.le,Set.range, Erdos346.f,Set.Infinite,Not, IsAddComplete,SDiff.sdiffProof uses: not_isAddComplete_range_diff_of_sum_range_le,
OfNat.ofNat, Erdos346.erdos_346.variants.f_strictMono,Eq,HAdd.hAdd,Finset.sum,Finset.range,ite,Even, Erdos346.erdos_346.variants.sum_range_f,Decidable.byContradiction14 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.f_not_isAddComplete {B : Set ℕ} (h : B ⊆ range f) (hB : B.Infinite) : ¬ IsAddComplete (range f \ B) := …Mentions: Erdos346.f, IsAddComplete
- theorem
Erdos346.erdos_346.variants.gt_goldenRatio_not_IsAddCompleteErdős and Graham [ErGr80] remark that it is easy to see that ifA (n + 1) / A n > (1 + √5) / 2then the second property is automatically satisfied line 159 sourceSource documentation
Erdős and Graham [ErGr80] remark that it is easy to see that if
A (n + 1) / A n > (1 + √5) / 2then the second property is automatically satisfied.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,Real,HMul.hMul,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,Real.sqrt,Set,LE.le,Set.range,Set.Infinite,Not, IsAddComplete,SDiff.sdiffProof uses:
Eq,Eq.mpr,HPow.hPow,id,congrArg,Mathlib.Meta.NormNum.isNat_eq_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Meta.NormNum.isNat_pow,Mathlib.Meta.NormNum.IsNatPowT.run,Mathlib.Meta.NormNum.IsNatPowT.bit0,Real.sqrt_sq,Mathlib.Meta.NormNum.isNat_le_true,Nat.cast_zero,Bool,Bool.true,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mpand 103 more154 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.gt_goldenRatio_not_IsAddComplete {A : ℕ → ℕ} (hA : ∀ n, (1 + √5) / 2 * A n < A (n + 1)) {B : Set ℕ} (h : B ⊆ range A) (hB : B.Infinite) : ¬ IsAddComplete (range A \ B) := by …Mentions: IsAddComplete
- theorem
Erdos346.erdos_346.variants.exampleDocumented declaration: example sorry line 194 sourceSource documentation
Erdős and Graham [ErGr80] also say that it is not hard to construct very irregular sequences satisfying the aforementioned properties: there is a strictly increasing sequence
Athat is strongly complete and not complete whenever infinitely many terms are removed from it, but with $\liminf_n A(n+1)/A(n) = 1$ and $\limsup_n A(n+1)/A(n) = \infty$.depends on sorry what this means
Statement uses:
Exists,Nat,And,StrictMono, IsAddStronglyCompleteNatSeq,Set,LE.le,Set.range,Set.Infinite,Not, IsAddComplete,SDiff.sdiff,Eq,Real,Filter.liminf,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,Filter.atTop,ENNRealand 2 moreProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous48 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_346.variants.example : ∃ A : ℕ → ℕ, StrictMono A ∧ IsAddStronglyCompleteNatSeq A ∧ (∀ B : Set ℕ, B ⊆ range A → B.Infinite → ¬ IsAddComplete (range A \ B)) ∧ liminf (fun n => A (n + 1) / (A n : ℝ)) atTop = 1 ∧ limsup (fun n => A (n + 1) / (A n : ENNReal)) atTop = ⊤ := by …Mentions: IsAddStronglyCompleteNatSeq, IsAddComplete