Compfiles/Usa1984P5.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

5 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 1984, Problem 5

P(x) is a polynomial of degree 3n such that

P(0) = P(3) = ... = P(3n) = 2, P(1) = P(4) = ... = P(3n - 2) = 1, P(2) = P(5) = ... = P(3n - 1) = 0, and P(3n + 1) = 730.

Determine n.

Imports (2)
Imported by 1 file
  1. determine Usa1984P5.solution_value line 33 source

    no axioms what this means

    Statement uses: Nat

    Proof uses: OfNat.ofNat

    1 instances, coercions and auxiliary constants left out.

  2. def Usa1984P5.fwdDiff The forward difference operator on real sequences line 49 source

    Source documentation

    The forward difference operator on real sequences.

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

    Statement uses: Nat, Real

    Proof uses: HSub.hSub, HAdd.hAdd, OfNat.ofNat

    5 instances, coercions and auxiliary constants left out.

    def fwdDiff (f : ℕ → ℝ) : ℕ → ℝ := fun n ↦ f (n + 1) - f n

    Mentions: f

  3. lemma Usa1984P5.fwdDiff_iter_zero The m-fold forward difference at 0 is the alternating binomial sum line 52 source

    Source documentation

    The m-fold forward difference at 0 is the alternating binomial sum.

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

    Statement uses: Nat, Real, Eq, Nat.iterate, Usa1984P5.fwdDiff, OfNat.ofNat, Finset.sum, Finset.range, HAdd.hAdd, HMul.hMul, HPow.hPow, Neg.neg, HSub.hSub, Nat.choose

    Proof uses: Nat.recAux, of_eq_true, Eq.trans, True, congrArg, Singleton.singleton, Finset, congr, zero_add, funext, congrFun', zero_tsub, pow_zero, one_mul, Finset.sum_singleton, Nat.choose_self, Nat.cast_one, eq_self, Eq.mpr, id and 85 more

    120 instances, coercions and auxiliary constants left out.

    Tactic trace: 44 steps

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

    lemma fwdDiff_iter_zero (m : ℕ) (f : ℕ → ℝ) :
        fwdDiff^[m] f 0 = ∑ j ∈ Finset.range (m + 1), (-1 : ℝ) ^ (m - j) * (m.choose j : ℝ) * f j := by
    …

    Mentions: f, Usa1984P5.fwdDiff

  4. lemma Usa1984P5.poly_fwdDiff The m-fold forward difference of a polynomial of degree < m vanishes line 121 source

    Source documentation

    The m-fold forward difference of a polynomial of degree < m vanishes.

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

    Statement uses: Nat, Polynomial, Real, LT.lt, Polynomial.natDegree, Eq, Nat.iterate, Usa1984P5.fwdDiff, Polynomial.eval, OfNat.ofNat

    Proof uses: Nat.recAux, False.elim, Eq.mp, False, HAdd.hAdd, id, of_eq_true, HSub.hSub, Eq.trans, True, congrFun', congrArg, funext, sub_self, eq_self, Eq.mpr, Function.iterate_one, Iff.mp, funext_iff, Nat.succ and 52 more

    102 instances, coercions and auxiliary constants left out.

    Tactic trace: 55 steps

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

    lemma poly_fwdDiff (m : ℕ) (P : ℝ[X]) (hP : P.natDegree < m) (k : ℕ) :
        fwdDiff^[m] (fun j ↦ P.eval (j : ℝ)) k = 0 := by
    …

    Mentions: P, Usa1984P5.fwdDiff

  5. problem Usa1984P5.usa1984_p5 line 175 source

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, Polynomial, Real, Eq, Polynomial.natDegree, HMul.hMul, Membership.mem, Finset, Finset.range, HAdd.hAdd, Polynomial.eval, Usa1984P5.solution_value

    Proof uses: Complex, IsPrimitiveRoot, Exists, Exists.intro, Complex.exp, HDiv.hDiv, Real.pi, Complex.I, Complex.isPrimitiveRoot_exp, Mathlib.Meta.NormNum.isNat_eq_false, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, HPow.hPow, IsPrimitiveRoot.pow_eq_one, Finset.sum, IsPrimitiveRoot.geom_sum_eq_zero, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Tactic.LinearCombination.eq_of_eq and 209 more

    213 instances, coercions and auxiliary constants left out.

    Tactic trace: 232 steps (first 200 of 232)

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