--- Título: La composición de dos funciones monótonas es monótona Autor: José A. Alonso --- Demostrar con Lean4 que la composición de dos funciones monótonas es monótona. Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Data.Real.Basic

variable (f g : ℝ → ℝ)

example
  (mf : Monotone f)
  (mg : Monotone g)
  : Monotone (f ∘ g) :=
by sorry
Demostración en lenguaje natural [mathjax] Sean \\(f\\) y \\(g\\) dos funciones monótonas de \\(ℝ\\) en \\(ℝ\\). Tenemos que demostrar que \\(f ∘ g\\) es monótona; es decir, que \\[ (∀ a, b ∈ ℝ) [a ≤ b → (f ∘ g)(a) ≤ (f ∘ g)(b)] \\] Sean \\(a, b ∈ ℝ\\) tales que \\(a ≤ b\\). Por ser \\(g\\) monótona, se tiene \\[ g(a) ≤ g(b) \\] y, por ser f monótona, se tiene \\[ f(g(a)) ≤ f(g(b)) \\] Finalmente, por la definición de composición, \\[ (f ∘ g)(a) ≤ (f ∘ g)(b) \\] que es lo que había que demostrar. Demostraciones con Lean4
import Mathlib.Data.Real.Basic

variable (f g : ℝ → ℝ)

-- 1ª demostración
example
  (mf : Monotone f)
  (mg : Monotone g)
  : Monotone (f ∘ g) :=
by
  have h1 : ∀ a b, a ≤ b → (f ∘ g) a ≤ (f ∘ g) b
  { intros a b hab
    have h1 : g a ≤ g b := mg hab
    show (f ∘ g) a ≤ (f ∘ g) b
    exact mf h1 }
  show Monotone (f ∘ g)
  exact h1

-- 2ª demostración
example
  (mf : Monotone f)
  (mg : Monotone g)
  : Monotone (f ∘ g) :=
by
  have h1 : ∀ a b, a ≤ b → (f ∘ g) a ≤ (f ∘ g) b
  { intros a b hab
    show (f ∘ g) a ≤ (f ∘ g) b
    exact mf (mg hab) }
  show Monotone (f ∘ g)
  exact h1

-- 3ª demostración
example
  (mf : Monotone f)
  (mg : Monotone g)
  : Monotone (f ∘ g) :=
by
  -- a b : ℝ
  -- hab : a ≤ b
  intros a b hab
  -- (f ∘ g) a ≤ (f ∘ g) b
  apply mf
  -- g a ≤ g b
  apply mg
  -- a ≤ b
  apply hab

-- 4ª demostración
example (mf : Monotone f) (mg : Monotone g) :
  Monotone (f ∘ g) :=
λ _ _ hab ↦ mf (mg hab)
Demostraciones interactivas Se puede interactuar con las demostraciones anteriores en Lean 4 Web. Referencias