Compfiles/Usa2002P4.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
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
- def
Usa2002P4.FEline 28 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
Eq,HSub.hSub,HPow.hPow,Nat,OfNat.ofNat,HMul.hMul9 instances, coercions and auxiliary constants left out.
- lemma
Usa2002P4.f_zerof(0)=0 line 36 sourceSource comment
f(0)=0standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real, Usa2002P4.FE,Eq,OfNat.ofNatProof 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_mul30 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
- lemma
Usa2002P4.squarishf(x^2) = xf(x) line 40 sourceSource 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.hMulProof 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_zero33 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
- lemma
Usa2002P4.square_additivef(x^2) = f(x^2)-f(y^2) line 44 sourceSource 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.ofNatProof uses:
Eq.mpr,HMul.hMul,id,congrArg,congr, Usa2002P4.squarish16 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
- lemma
Usa2002P4.f_oddf is odd line 50 sourceSource comment
f is oddstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real, Usa2002P4.FE,Eq,Neg.negProof 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_sqrtand 10 more56 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
- lemma
Usa2002P4.additive_posf(x+y) = f(x)+f(y) with x,y ≥ 0 first line 60 sourceSource comment
f(x+y) = f(x)+f(y) with x,y ≥ 0 firststandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real, Usa2002P4.FE,LE.le,OfNat.ofNat,Eq,HAdd.hAddProof uses:
HSub.hSub,HPow.hPow,Nat,Real.sqrt, Usa2002P4.square_additive18 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
- lemma
Usa2002P4.additiveNow show Cauchy FE holds with x,y not necessarily positive (lots of cases) line 66 sourceSource 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.hAddProof 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_selfand 59 more77 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
- lemma
Usa2002P4.four_additiveApply Cauchy four times to f line 93 sourceSource comment
Apply Cauchy four times to fstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real, Usa2002P4.FE,Eq,HAdd.hAddProof 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.negOfNatand 38 more54 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
- lemma
Usa2002P4.main_proofShow the FE implies f(x) = f(1)*x line 101 sourceSource comment
Show the FE implies f(x) = f(1)*xstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real, Usa2002P4.FE,Eq,HMul.hMul,OfNat.ofNatProof 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_oneand 29 more33 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
- determine
Usa2002P4.solution_setline 112 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,RealProof uses:
Set.ofPred,Exists,Eq,HMul.hMul2 instances, coercions and auxiliary constants left out.
- problem
Usa2002P4.usa2002_p4line 114 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff,Membership.mem,Set, Usa2002P4.solution_set, Usa2002P4.FEProof uses:
Iff.intro,id,Exists.intro,Eq,HMul.hMul,OfNat.ofNat, Usa2002P4.main_proof7 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.