Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 89ea423

Browse files
feat(archive/imo): formalize IMO 2005 Q3 (#6984)
feat(archive/imo): formalize IMO 2005 Q3 Co-authored-by: Manuel Candales <manuelcandales@gmail.com>
1 parent b05affb commit 89ea423

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

archive/imo/imo2005_q3.lean

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/-
2+
Copyright (c) 2021 Manuel Candales. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Manuel Candales
5+
-/
6+
import data.real.basic
7+
8+
/-!
9+
# IMO 2005 Q3
10+
Let `x`, `y` and `z` be positive real numbers such that `xyz ≥ 1`. Prove that:
11+
`(x^5 - x^2)/(x^5 + y^2 + z^2) + (y^5 - y^2)/(y^5 + z^2 + x^2) + (z^5 - z^2)/(z^5 + x^2 + y^2) ≥ 0`
12+
13+
# Solution
14+
The solution by Iurie Boreico from Moldova is presented, which won a special prize during the exam.
15+
The key insight is that `(x^5-x^2)/(x^5+y^2+z^2) ≥ (x^2-y*z)/(x^2+y^2+z^2)`, which is proven by
16+
factoring `(x^5-x^2)/(x^5+y^2+z^2) - (x^5-x^2)/(x^3*(x^2+y^2+z^2))` into a non-negative expression
17+
and then making use of `xyz ≥ 1` to show `(x^5-x^2)/(x^3*(x^2+y^2+z^2)) ≥ (x^2-y*z)/(x^2+y^2+z^2)`.
18+
-/
19+
20+
lemma key_insight (x y z : ℝ) (hx : x > 0) (hy : y > 0) (hz : z > 0) (h : x*y*z ≥ 1) :
21+
(x^5-x^2)/(x^5+y^2+z^2) ≥ (x^2-y*z)/(x^2+y^2+z^2) :=
22+
begin
23+
have h₁ : x^5+y^2+z^2 > 0, linarith [pow_pos hx 5, pow_pos hy 2, pow_pos hz 2],
24+
have h₂ : x^3 > 0, exact pow_pos hx 3,
25+
have h₃ : x^2+y^2+z^2 > 0, linarith [pow_pos hx 2, pow_pos hy 2, pow_pos hz 2],
26+
have h₄ : x^3*(x^2+y^2+z^2) > 0, exact mul_pos h₂ h₃,
27+
28+
have key : (x^5-x^2)/(x^5+y^2+z^2) - (x^5-x^2)/(x^3*(x^2+y^2+z^2))
29+
= ((x^3 - 1)^2*x^2*(y^2 + z^2))/((x^5+y^2+z^2)*(x^3*(x^2+y^2+z^2))),
30+
calc (x^5-x^2)/(x^5+y^2+z^2) - (x^5-x^2)/(x^3*(x^2+y^2+z^2))
31+
= ((x^5-x^2)*(x^3*(x^2+y^2+z^2))-(x^5+y^2+z^2)*(x^5-x^2))/((x^5+y^2+z^2)*(x^3*(x^2+y^2+z^2))):
32+
by exact div_sub_div _ _ (ne_of_gt h₁) (ne_of_gt h₄) -- a/b - c/d = (a*d-b*c)/(b*d)
33+
... = ((x^3 - 1)^2*x^2*(y^2 + z^2))/((x^5+y^2+z^2)*(x^3*(x^2+y^2+z^2))) :
34+
by ring,
35+
36+
have h₅ : ((x^3 - 1)^2*x^2*(y^2 + z^2))/((x^5+y^2+z^2)*(x^3*(x^2+y^2+z^2))) ≥ 0,
37+
{ refine div_nonneg _ _,
38+
refine mul_nonneg (mul_nonneg (pow_two_nonneg _) (pow_two_nonneg _)) _,
39+
exact add_nonneg (pow_two_nonneg _) (pow_two_nonneg _),
40+
exact le_of_lt (mul_pos h₁ h₄) },
41+
42+
calc (x^5-x^2)/(x^5+y^2+z^2)
43+
≥ (x^5-x^2)/(x^3*(x^2+y^2+z^2)) : by linarith [key, h₅]
44+
... ≥ (x^5-x^2*(x*y*z))/(x^3*(x^2+y^2+z^2)) :
45+
by { refine (div_le_div_right h₄).mpr _, simp,
46+
exact (le_mul_iff_one_le_right (pow_pos hx 2)).mpr h }
47+
... = (x^2-y*z)/(x^2+y^2+z^2) :
48+
by { field_simp [ne_of_gt h₂, ne_of_gt h₃], ring },
49+
end
50+
51+
theorem imo2005_q3 (x y z : ℝ) (hx : x > 0) (hy : y > 0) (hz : z > 0) (h : x*y*z ≥ 1) :
52+
(x^5-x^2)/(x^5+y^2+z^2) + (y^5-y^2)/(y^5+z^2+x^2) + (z^5-z^2)/(z^5+x^2+y^2) ≥ 0 :=
53+
begin
54+
calc (x^5-x^2)/(x^5+y^2+z^2) + (y^5-y^2)/(y^5+z^2+x^2) + (z^5-z^2)/(z^5+x^2+y^2)
55+
≥ (x^2-y*z)/(x^2+y^2+z^2) + (y^2-z*x)/(y^2+z^2+x^2) + (z^2-x*y)/(z^2+x^2+y^2) :
56+
by { linarith [key_insight x y z hx hy hz h,
57+
key_insight y z x hy hz hx (by linarith [h]),
58+
key_insight z x y hz hx hy (by linarith [h])] }
59+
... = (x^2 + y^2 + z^2 - y*z - z*x - x*y) / (x^2+y^2+z^2) :
60+
by { have h₁ : y^2+z^2+x^2 = x^2+y^2+z^2, linarith,
61+
have h₂ : z^2+x^2+y^2 = x^2+y^2+z^2, linarith,
62+
rw [h₁, h₂], ring }
63+
... = 1/2*( (x-y)^2 + (y-z)^2 + (z-x)^2 ) / (x^2+y^2+z^2) : by ring
64+
... ≥ 0 :
65+
by { exact div_nonneg
66+
(by linarith [pow_two_nonneg (x-y), pow_two_nonneg (y-z), pow_two_nonneg (z-x)])
67+
(by linarith [pow_two_nonneg x, pow_two_nonneg y, pow_two_nonneg z]) },
68+
end

0 commit comments

Comments
 (0)