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

11 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 2002, Problem 4

Find all functions f : ℝ → ℝ such that for all x, y ∈ ℝ: f(x² - y²) = x f(x) - y f(y).

Imports (2)
Imported by 1 file
  1. def Usa2002P4.FE line 28 source

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

    Statement uses: Real

    Proof uses: Eq, HSub.hSub, HPow.hPow, Nat, OfNat.ofNat, HMul.hMul

    9 instances, coercions and auxiliary constants left out.

  2. lemma Usa2002P4.f_zero f(0)=0 line 36 source

    Source comment

    f(0)=0

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

    Statement uses: Real, Usa2002P4.FE, Eq, OfNat.ofNat

    Proof uses: Eq.mp, HSub.hSub, HPow.hPow, Nat, HMul.hMul, congr, congrArg, Eq.trans, zero_pow, of_eq_true, Not, False, True, not_false_eq_true, sub_self, MulZeroClass.zero_mul

    30 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    lemma f_zero {f : ℝ → ℝ} (hf : FE f) : f 0 = 0 := by
    …

    Mentions: f, Usa2002P4.FE

  3. lemma Usa2002P4.squarish f(x^2) = xf(x) line 40 source

    Source comment

    f(x^2) = xf(x)

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

    Statement uses: Real, Usa2002P4.FE, Eq, HPow.hPow, Nat, OfNat.ofNat, HMul.hMul

    Proof uses: Eq.mp, HSub.hSub, congr, congrArg, Eq.trans, zero_pow, of_eq_true, Not, False, True, not_false_eq_true, sub_zero, Usa2002P4.f_zero, MulZeroClass.mul_zero

    33 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    lemma squarish {f : ℝ → ℝ} (hf : FE f) (x : ℝ) : f (x^2) = x * f x := by
    …

    Mentions: f, Usa2002P4.FE

  4. lemma Usa2002P4.square_additive f(x^2) = f(x^2)-f(y^2) line 44 source

    Source comment

    f(x^2) = f(x^2)-f(y^2)

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

    Statement uses: Real, Usa2002P4.FE, Eq, HSub.hSub, HPow.hPow, Nat, OfNat.ofNat

    Proof uses: Eq.mpr, HMul.hMul, id, congrArg, congr, Usa2002P4.squarish

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma square_additive {f : ℝ → ℝ} (hf : FE f) (x : ℝ) (y : ℝ)  :
        f (x^2 - y^2) = f (x^2) - f (y^2) := by
    …

    Mentions: f, Usa2002P4.FE

  5. lemma Usa2002P4.f_odd f is odd line 50 source

    Source comment

    f is odd

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

    Statement uses: Real, Usa2002P4.FE, Eq, Neg.neg

    Proof uses: dite, GE.ge, OfNat.ofNat, HSub.hSub, HPow.hPow, Nat, Real.sqrt, Usa2002P4.square_additive, of_eq_true, Eq.trans, True, congrArg, id, Eq.mp, congr, zero_pow, Not, False, not_false_eq_true, Real.sq_sqrt and 10 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 9 steps

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

    lemma f_odd {f : ℝ → ℝ} (hf : FE f) (x : ℝ)  :
        -f x = f (-x) := by
    …

    Mentions: f, Usa2002P4.FE

  6. lemma Usa2002P4.additive_pos f(x+y) = f(x)+f(y) with x,y ≥ 0 first line 60 source

    Source comment

    f(x+y) = f(x)+f(y) with x,y ≥ 0 first

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

    Statement uses: Real, Usa2002P4.FE, LE.le, OfNat.ofNat, Eq, HAdd.hAdd

    Proof uses: HSub.hSub, HPow.hPow, Nat, Real.sqrt, Usa2002P4.square_additive

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma additive_pos {f : ℝ → ℝ} (hf : FE f) {x : ℝ} {y : ℝ} (hx : 0 ≤ x) (hy : 0 ≤ y):
        f (x + y) = f x + f y := by
    …

    Mentions: f, Usa2002P4.FE

  7. lemma Usa2002P4.additive Now show Cauchy FE holds with x,y not necessarily positive (lots of cases) line 66 source

    Source comment

    Now show Cauchy FE holds with x,y not necessarily positive (lots of cases)

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

    Statement uses: Real, Usa2002P4.FE, Eq, HAdd.hAdd

    Proof uses: LE.le, Not, Or, Classical.em, dite, OfNat.ofNat, Usa2002P4.additive_pos, Neg.neg, of_eq_true, Eq.trans, True, congrArg, id, Eq.mp, congrFun', add_neg_cancel_comm, Eq.symm, Usa2002P4.f_odd, add_neg_cancel_comm_assoc, eq_self and 59 more

    77 instances, coercions and auxiliary constants left out.

    Tactic trace: 39 steps

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

    lemma additive {f : ℝ → ℝ} (hf : FE f) (x : ℝ) (y : ℝ)  :
        f (x + y) = f x + f y := by
    …

    Mentions: f, Usa2002P4.FE

  8. lemma Usa2002P4.four_additive Apply Cauchy four times to f line 93 source

    Source comment

    Apply Cauchy four times to f

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

    Statement uses: Real, Usa2002P4.FE, Eq, HAdd.hAdd

    Proof uses: Usa2002P4.additive, Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt, Not.intro, LT.lt, Mathlib.Tactic.Linarith.lt_irrefl, OfNat.ofNat, Eq.mp, Neg.neg, HSub.hSub, congrArg, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, HMul.hMul, HPow.hPow, Nat, Nat.rawCast, Int.rawCast, inferInstance, Ring, Int.negOfNat and 38 more

    54 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

    lemma four_additive {f : ℝ → ℝ} (hf : FE f) (a : ℝ) (b : ℝ) (c : ℝ) (d : ℝ) :
        f (a + b + c + d) = f a + f b + f c + f d := by
    …

    Mentions: f, Usa2002P4.FE

  9. lemma Usa2002P4.main_proof Show the FE implies f(x) = f(1)*x line 101 source

    Source comment

    Show the FE implies f(x) = f(1)*x

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

    Statement uses: Real, Usa2002P4.FE, Eq, HMul.hMul, OfNat.ofNat

    Proof uses: HPow.hPow, Nat, HAdd.hAdd, Usa2002P4.squarish, Eq.mp, congrArg, Usa2002P4.four_additive, Mathlib.Tactic.Ring.of_eq, Nat.rawCast, Mathlib.Tactic.Ring.Common.pow_congr, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Tactic.Ring.Common.atom_pf, rfl, Eq.mpr, id, Eq.symm, Eq.refl, Mathlib.Tactic.Ring.cast_pos, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_one and 29 more

    33 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

    lemma main_proof {f : ℝ → ℝ} (hf : FE f) (x : ℝ)  :
        f x = f 1 * x := by
    …

    Mentions: f, Usa2002P4.FE

  10. determine Usa2002P4.solution_set line 112 source

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

    Statement uses: Set, Real

    Proof uses: Set.ofPred, Exists, Eq, HMul.hMul

    2 instances, coercions and auxiliary constants left out.

  11. problem Usa2002P4.usa2002_p4 line 114 source

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

    Statement uses: Real, Iff, Membership.mem, Set, Usa2002P4.solution_set, Usa2002P4.FE

    Proof uses: Iff.intro, id, Exists.intro, Eq, HMul.hMul, OfNat.ofNat, Usa2002P4.main_proof

    7 instances, coercions and auxiliary constants left out.

    Tactic trace: 9 steps

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