Si a, b ∈ ℝ, entonces |ab| ≤ (a² + b²)/2
Demostrar que si a, b ∈ ℝ, entonces |ab| ≤ (a² + b²)/2
Para ello, completar la siguiente teoría de Lean:
1 2 3 4 5 6 7 |
import data.real.basic import tactic variables a b : ℝ example : abs (a*b) ≤ (a^2 + b^2) / 2 := sorry |
Soluciones con Lean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import data.real.basic import tactic variables a b : ℝ -- 1ª demostración example : abs (a*b) ≤ (a^2 + b^2) / 2 := begin apply abs_le.mpr, split, { have h1 : 0 ≤ a^2 + 2*a*b + b^2, calc 0 ≤ (a+b)^2 : by exact pow_two_nonneg (a + b) ... = a^2+2*a*b+b^2 : by ring, have h2 : -2*(a*b) ≤ a^2 + b^2, calc -2*(a*b) ≤ -2*(a*b)+(a^2+2*a*b+b^2) : by exact le_add_of_nonneg_right h1 ... = a^2 + b^2 : by ring, show -((a^2 + b^2) / 2) ≤ a*b, by linarith [h2] }, { have h3 : 0 ≤ a^2 - 2*a*b + b^2, calc 0 ≤ (a-b)^2 : by exact pow_two_nonneg (a - b) ... = a^2-2*a*b+b^2 : by ring, have h4 : 2*(a*b) ≤ a^2 + b^2, calc 2*(a*b) ≤ 2*(a*b)+(a^2-2*a*b+b^2) : by exact le_add_of_nonneg_right h3 ... = a^2 + b^2 : by ring, show a * b ≤ (a^2 + b^2)/2, by linarith [h4] }, end -- 2ª demostración example : abs (a*b) ≤ (a^2 + b^2) / 2 := begin apply abs_le.mpr, split, { have h1 : 0 ≤ a^2 + 2*a*b + b^2, calc 0 ≤ (a+b)^2 : by exact pow_two_nonneg (a + b) ... = a^2+2*a*b+b^2 : by ring, have h2 : -2*(a*b) ≤ a^2 + b^2, calc -2*(a*b) ≤ -2*(a*b)+(a^2+2*a*b+b^2) : by exact le_add_of_nonneg_right h1 ... = a^2 + b^2 : by ring, show -((a^2 + b^2) / 2) ≤ a*b, by linarith [h2] }, { have h4 : 2*a*b ≤ a^2 + b^2 := two_mul_le_add_sq a b, show a * b ≤ (a^2 + b^2)/2, by linarith [h4] }, end -- 3ª demostración example : abs (a*b) ≤ (a^2 + b^2) / 2 := begin apply abs_le.mpr, split, { have h1 : 0 ≤ a^2 + 2*a*b + b^2, calc 0 ≤ (a+b)^2 : by exact pow_two_nonneg (a + b) ... = a^2+2*a*b+b^2 : by ring, have h2 : -2*(a*b) ≤ a^2 + b^2, calc -2*(a*b) ≤ -2*(a*b)+(a^2+2*a*b+b^2) : by exact le_add_of_nonneg_right h1 ... = a^2 + b^2 : by ring, show -((a^2 + b^2) / 2) ≤ a*b, by linarith [h2] }, { show a * b ≤ (a^2 + b^2)/2, by linarith [two_mul_le_add_sq a b] }, end |
Se puede interactuar con la prueba anterior en esta sesión con Lean.
Referencias
- J. Avigad, K. Buzzard, R.Y. Lewis y P. Massot. Mathematics in Lean, p. 18.