Skip to main content

La función real f no es monótona syss existen x, y tales que x ≤ y y f(x) > f(y)

Demostrar con Lean4 que \(f: ℝ → ℝ\) no es monótona syss \((∃x,y)[x ≤ y ∧ f(x) > f(y)]\)​.

Para ello, completar la siguiente teoría de Lean4:

import Mathlib.Data.Real.Basic
variable {f :   }

example :
  ¬Monotone f   x y, x  y  f x > f y :=
sorry

Demostración en lenguaje natural

Por la siguiente cadena de equivalencias: \begin{align} f \text{ es no monótona } & ↔ ¬(∀ x y)[x ≤ y → f(x) ≤ f(y)] \newline & ↔ (∃ x y)[x ≤ y ∧ f(x) > f(y)] \end{align}

Demostraciones con Lean4

import Mathlib.Data.Real.Basic
variable {f :   }

-- 1ª demostración
-- ===============

example :
  ¬Monotone f   x y, x  y  f x > f y :=
calc
  ¬Monotone f
     ¬∀ x y, x  y  f x  f y := by rw [Monotone]
  _   x y, x  y  f y < f x  := by simp_all only [not_forall, not_le, exists_prop]
  _   x y, x  y  f x > f y  := by rfl

-- 2ª demostración
-- ===============

example :
  ¬Monotone f   x y, x  y  f x > f y :=
calc
  ¬Monotone f
     ¬∀ x y, x  y  f x  f y := by rw [Monotone]
  _   x y, x  y  f x > f y  := by aesop

-- 3ª demostración
-- ===============

example :
  ¬Monotone f   x y, x  y  f x > f y :=
by
  rw [Monotone]
  -- ⊢ (¬∀ ⦃a b : ℝ⦄, a ≤ b → f a ≤ f b) ↔ ∃ x y, x ≤ y ∧ f x > f y
  push_neg
  -- ⊢ (Exists fun ⦃a⦄ => Exists fun ⦃b⦄ => a ≤ b ∧ f b < f a) ↔ ∃ x y, x ≤ y ∧ f x > f y
  rfl

-- 4ª demostración
-- ===============

lemma not_Monotone_iff :
  ¬Monotone f   x y, x  y  f x > f y :=
by
  rw [Monotone]
  -- ⊢ (¬∀ ⦃a b : ℝ⦄, a ≤ b → f a ≤ f b) ↔ ∃ x y, x ≤ y ∧ f x > f y
  aesop

Demostraciones interactivas

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

Referencias