Compfiles/Imo2008P4.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
6 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2008, Problem 4
Determine all functions f from the positive reals to the positive reals such that
(f(w)² + f(x)²) / (f(y)² + f(z)²) = (w² + x²) / (y² + z²)
for all positive real numbers w,x,y,z satisfying xw = yz.
Imported by 1 file
- abbrev
Imo2008P4.PosRealline 35 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
Subtype,Real,LT.lt,OfNat.ofNat3 instances, coercions and auxiliary constants left out.
- lemma
Imo2008P4.positive_pow_eq_powline 39 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat, Imo2008P4.PosReal,Iff,Eq,HPow.hPow,RealProof uses:
Eq.mpr,id,congrArg,Subtype,Eq.symm,propext,Subtype.coe_inj,Positive.val_pow,pow_left_inj₀,le_of_lt,Subtype.property,Nat.ne_of_gt33 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2008P4.PosReal.mul_twoIn mathlib3, mul_two automatically worked on PosReal line 46 sourceSource comment
In mathlib3, mul_two automatically worked on PosReal. In mathlib4 it does not. See https://github.com/leanprover-community/mathlib4/blob/7cc262f36953b78637c096c4bc6634c2af0b2a0a/Mathlib/Algebra/Ring/Defs.lean#L176-L179.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2008P4.PosReal,
Eq,HMul.hMul,Real,Subtype.mk,LT.lt,OfNat.ofNat,Nat,two_pos,HAdd.hAddProof uses:
Eq.mpr,id,congrArg,Subtype,propext,Subtype.ext_iff,of_eq_true,Eq.trans,True,congrFun',mul_two,eq_self82 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma PosReal.mul_two (x : PosReal) : x * ⟨2, two_pos⟩ = x + x := by …
Mentions: Imo2008P4.PosReal
- lemma
Imo2008P4.PosReal.two_mulline 51 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2008P4.PosReal,
Eq,HMul.hMul,Real,Subtype.mk,LT.lt,OfNat.ofNat,Nat,two_pos,HAdd.hAddProof uses:
Eq.mpr,id,congrArg,Subtype,propext,Subtype.ext_iff,of_eq_true,Eq.trans,True,congrFun',two_mul,eq_self82 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- determine
Imo2008P4.solution_setline 58 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set, Imo2008P4.PosRealProof uses:
Set.ofPred,Or,Eq,id,HDiv.hDiv,Real,OfNat.ofNat12 instances, coercions and auxiliary constants left out.
- problem
Imo2008P4.imo2008_p4line 60 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2008P4.PosReal,
Iff,Membership.mem,Set, Imo2008P4.solution_set,Eq,HMul.hMul,Real,HAdd.hAdd,HPow.hPow,Nat,OfNat.ofNatProof uses:
Iff.intro,id,HDiv.hDiv,Eq.refl,Eq.symm,of_eq_true,Eq.trans,True,congrFun',congrArg,Inv.inv,funext,one_div,mul_inv_cancel,eq_self,Eq.mpr,propext,mul_right_inj,LT.lt,mul_assocand 63 more197 instances, coercions and auxiliary constants left out.
Tactic trace: 58 steps
Open to load the checked before-and-after goal states.