Compfiles/Imo1968P6.lean

GitHub source file

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

3 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1968, Problem 6

For every natural number n, evaluate the sum ∑_{k=0}^{∞} [(n + 2^k) / 2^(k+1)] where [x] denotes the greatest integer less than or equal to x.

Imports (4)
Imported by 1 file
  1. lemma Imo1968P6.term_telescope Lemma for the telescoping term structure line 31 source

    Source comment

    Lemma for the telescoping term structure

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, Eq, HDiv.hDiv, HAdd.hAdd, HPow.hPow, OfNat.ofNat, HSub.hSub

    Proof uses: Eq.mpr, HMul.hMul, id, congrArg, pow_succ, Eq.symm, Nat.div_div_eq_div_mul, LT.lt, pow_pos, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, Nat.add_div_right

    43 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

    Open to load the checked before-and-after goal states.

    lemma term_telescope (n k : ℕ) :
        (n + 2^k) / 2^(k+1) = n / 2^k - n / 2^(k+1) := by
    …
  2. determine Imo1968P6.n_ans The answer is n line 46 source

    Source documentation

    The answer is n. We pull this into a determine statement as required.

    no axioms what this means

    Statement uses: Nat

    determine n_ans (n : ℕ) : ℕ := n
  3. problem Imo1968P6.imo1968_p6 line 48 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, Eq, tsum, HDiv.hDiv, HAdd.hAdd, HPow.hPow, OfNat.ofNat, SummationFilter.unconditional, Imo1968P6.n_ans

    Proof uses: id, Finset.sum, Finset.range, tsum_eq_sum, Not, Membership.mem, Finset, Nat.div_eq_of_lt, Trans.trans, LT.lt, add_lt_add_left, LE.le, Nat.lt_two_pow_self, Nat.pow_lt_pow_right, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, le_refl and 31 more

    97 instances, coercions and auxiliary constants left out.

    Tactic trace: 37 steps

    Open to load the checked before-and-after goal states.