Compfiles/Imo1970P3.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 compfiles documentation, Pinned compfiles corpus index
7 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1970, Problem 3
The real numbers a₀, a₁, a₂, ... satisfy 1 = a₀ ≤ a₁ ≤ a₂ ≤ ... . b₁, b₂, b₃, ... are defined by bₙ = ∑{k=1}^{n} (1 - a{k-1}/a_k)/√a_k.
(a) Prove that 0 ≤ bₙ < 2.
(b) Given c satisfying 0 ≤ c < 2, prove that we can find an so that bₙ > c for all sufficiently large n.
Imports (2)
Imported by 1 file
- structure
Imo1970P3.IncreasingSequenceFromOneA sequence of real numbers satisfying the given conditions line 32 sourceSource documentation
A sequence of real numbers satisfying the given conditions
standard axioms: Classical.choice, Quot.sound, propext what this means
structure IncreasingSequenceFromOne where …
- def
Imo1970P3.b_seqThe b_n sequence defined in terms of the a sequence line 38 sourceSource documentation
The b_n sequence defined in terms of the a sequence
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo1970P3.IncreasingSequenceFromOne,
Nat,RealProof uses:
Finset.sum,Finset.range,HDiv.hDiv,HSub.hSub,OfNat.ofNat,Imo1970P3.IncreasingSequenceFromOne.a,HAdd.hAdd,Real.sqrt11 instances, coercions and auxiliary constants left out.
noncomputable def b_seq (seq : IncreasingSequenceFromOne) (n : ℕ) : ℝ := …
Mentions: Imo1970P3.IncreasingSequenceFromOne
- def
Imo1970P3.ValidBoundsline 41 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,RealProof uses:
Set.ofPred,And,LE.le,OfNat.ofNat,LT.lt7 instances, coercions and auxiliary constants left out.
- def
Imo1970P3.c_seqHelper: c_k = √(a_k) line 47 sourceSource documentation
Helper: c_k = √(a_k)
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo1970P3.IncreasingSequenceFromOne,
Nat,RealProof uses:
Real.sqrt,Imo1970P3.IncreasingSequenceFromOne.anoncomputable def c_seq (seq : IncreasingSequenceFromOne) (k : ℕ) : ℝ := Real.sqrt (seq.a k)
Mentions: Imo1970P3.IncreasingSequenceFromOne
- lemma
Imo1970P3.seq_posAll elements of the sequence are positive line 50 sourceSource documentation
All elements of the sequence are positive
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo1970P3.IncreasingSequenceFromOne,
Nat,LT.lt,Real,OfNat.ofNat,Imo1970P3.IncreasingSequenceFromOne.aProof uses:
Nat.recAux,Eq.mpr,id,Eq,congrArg,Imo1970P3.IncreasingSequenceFromOne.a_zero,zero_lt_one,LE.le,HAdd.hAdd,Imo1970P3.IncreasingSequenceFromOne.a_mono,Nat.le_succ,lt_of_lt_of_le19 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma seq_pos (seq: IncreasingSequenceFromOne) : ∀ n, 0 < seq.a n := by …
Mentions: Imo1970P3.IncreasingSequenceFromOne
- lemma
Imo1970P3.term_boundKey lemma: each term is bounded by 2(1/c_{k-1} - 1/c_k) line 61 sourceSource documentation
Key lemma: each term is bounded by 2(1/c_{k-1} - 1/c_k)
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo1970P3.IncreasingSequenceFromOne,
Nat,LE.le,Real,HDiv.hDiv,HSub.hSub,OfNat.ofNat,Imo1970P3.IncreasingSequenceFromOne.a,Real.sqrt,HMul.hMul, Imo1970P3.c_seqProof uses:
LT.lt,Iff.mpr,Real.sqrt_pos, Imo1970P3.seq_pos,Eq,HPow.hPow,of_eq_true,Eq.trans,True,congrArg,Real.sq_sqrt,le_of_lt,eq_self,Real.sqrt_le_sqrt,Imo1970P3.IncreasingSequenceFromOne.a_mono,Nat.sub_le,Eq.mpr,Inv.inv,id,congrand 148 more149 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.
lemma term_bound (seq : IncreasingSequenceFromOne) (k : ℕ) : (1 - seq.a (k - 1) / seq.a k) / Real.sqrt (seq.a k) ≤ 2 * (1 / c_seq seq (k - 1) - 1 / c_seq seq k) := by …
Mentions: Imo1970P3.IncreasingSequenceFromOne, Imo1970P3.c_seq
- problem
Imo1970P3.imo1970_p3line 113 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
And, Imo1970P3.IncreasingSequenceFromOne,Nat,Membership.mem,Real,Set, Imo1970P3.ValidBounds, Imo1970P3.b_seq,Exists,GE.ge,LT.ltProof uses:
And.intro,LE.le,OfNat.ofNat,Finset.sum_nonneg,HDiv.hDiv,HSub.hSub,Imo1970P3.IncreasingSequenceFromOne.a,HAdd.hAdd,Real.sqrt,Finset.range,Finset,Imo1970P3.IncreasingSequenceFromOne.a_mono,Nat.le_succ, Imo1970P3.seq_pos,Iff.mpr,div_le_one,div_nonneg,sub_nonneg,Real.sqrt_nonneg,Nat.casesAuxOnand 271 more212 instances, coercions and auxiliary constants left out.
Tactic trace: 145 steps
Open to load the checked before-and-after goal states.