Compfiles/Imo1969P6.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
3 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1969, Problem 6
Given real numbers x₁, x₂, y₁, y₂, z₁, z₂ satisfying x₁ > 0, x₂ > 0, x₁y₁ > z₁², and x₂y₂ > z₂², prove that
8 / ((x₁ + x₂)(y₁ + y₂) - (z₁ + z₂)²) ≤ 1 / (x₁y₁ - z₁²) + 1 / (x₂y₂ - z₂²).
Give necessary and sufficient conditions for equality.
Imported by 1 file
- theorem
Imo1969P6.amgm_chainDocumented declaration: amgm_chain line 39 sourceSource documentation
The core AM–GM chain of the solution: with
p² = x₁y₁ - z₁²andq² = x₂y₂ - z₂²we havepq + z₁z₂ ≤ √(x₁y₁ · x₂y₂) = √(x₁y₂) · √(x₂y₁)and2 √(x₁y₂) √(x₂y₁) ≤ x₁y₂ + x₂y₁(AM–GM).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HPow.hPow,Nat,HSub.hSub,HMul.hMul,And,LE.le,HAdd.hAdd,Real.sqrtProof uses:
Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Meta.NormNum.instAddMonoidWithOne,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,Eq.symmand 68 more99 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
theorem amgm_chain {x₁ x₂ y₁ y₂ z₁ z₂ p q : ℝ} (hx₁ : 0 < x₁) (hy₁ : 0 < y₁) (hx₂ : 0 < x₂) (hy₂ : 0 < y₂) (hp₂ : p ^ 2 = x₁ * y₁ - z₁ ^ 2) (hq₂ : q ^ 2 = x₂ * y₂ - z₂ ^ 2) : p * q + z₁ * z₂ ≤ Real.sqrt (x₁ * y₁ * (x₂ * y₂)) ∧ Real.sqrt (x₁ * y₁ * (x₂ * y₂)) = Real.sqrt (x₁ * y₂) * Real.sqrt (x₂ * y₁) ∧ 2 * (Real.sqrt (x₁ * y₂) * Real.sqrt (x₂ * y₁)) ≤ x₁ * y₂ + x₂ * y₁ := by … - determine
Imo1969P6.eqConditionThe condition for equality to hold line 64 sourceSource documentation
The condition for equality to hold.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
And,Eqdetermine eqCondition (x₁ x₂ y₁ y₂ z₁ z₂ : ℝ) : Prop := x₁ = x₂ ∧ y₁ = y₂ ∧ z₁ = z₂
- problem
Imo1969P6.imo1969_p6line 66 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,HPow.hPow,Nat,HMul.hMul,And,LE.le,HDiv.hDiv,HSub.hSub,HAdd.hAdd,Iff,Eq, Imo1969P6.eqConditionProof uses:
Iff.mpr,sub_pos,pos_of_mul_pos_right,lt_of_le_of_lt,sq_nonneg,LT.lt.le,Eq.mpr,id,congrArg,rfl,Real.sqrt,Real.sqrt_pos_of_pos,Eq.mp,Real.sq_sqrt, Imo1969P6.amgm_chain,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCastand 144 more172 instances, coercions and auxiliary constants left out.
Tactic trace: 124 steps
Open to load the checked before-and-after goal states.