Si f es par y g es impar, entonces (f ∘ g) es par
Demostrar con Lean4 que si \(f\) es par y \(g\) es impar, entonces \(f ∘ g\) es par.
Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Data.Real.Basic variable (f g : ℝ → ℝ) -- (esPar f) expresa que f es par. def esPar (f : ℝ → ℝ) : Prop := ∀ x, f x = f (-x) -- (esImpar f) expresa que f es impar. def esImpar (f : ℝ → ℝ) : Prop := ∀ x, f x = - f (-x) example (h1 : esPar f) (h2 : esImpar g) : esPar (f ∘ g) := by sorry
Demostración en lenguaje natural
Supongamos que \(f\) es una función par y \(g\) lo es impar. Tenemos que demostrar que \(f ∘ g\) es par; es decir, que \[ (∀ x ∈ ℝ) (f ∘ g)(x) = (f ∘ g)(-x) \] Sea \(x ∈ ℝ\). Entonces, \begin{align} (f ∘ g)(x) &= f(g(x)) \newline &= f(-g(-x)) &&\text{[porque \(g\) es impar]} \newline &= f(g(-x)) &&\text{[porque \(f\) es par]} \newline &= (f ∘ g)(-x) \end{align}
Demostraciones con Lean4
import Mathlib.Data.Real.Basic variable (f g : ℝ → ℝ) -- (esPar f) expresa que f es par. def esPar (f : ℝ → ℝ) : Prop := ∀ x, f x = f (-x) -- (esImpar f) expresa que f es impar. def esImpar (f : ℝ → ℝ) : Prop := ∀ x, f x = - f (-x) -- 1ª demostración example (h1 : esPar f) (h2 : esImpar g) : esPar (f ∘ g) := by intro x calc (f ∘ g) x = f (g x) := rfl _ = f (-g (-x)) := congr_arg f (h2 x) _ = f (g (-x)) := (h1 (g (-x))).symm _ = (f ∘ g) (-x) := rfl -- 2ª demostración example (h1 : esPar f) (h2 : esImpar g) : esPar (f ∘ g) := by intro x calc (f ∘ g) x = f (g x) := rfl _ = f (-g (-x)) := by rw [h2] _ = f (g (-x)) := by rw [← h1] _ = (f ∘ g) (-x) := rfl -- 3ª demostración example (h1 : esPar f) (h2 : esImpar g) : esPar (f ∘ g) := by intro x calc (f ∘ g) x = f (g x) := rfl _ = f (g (-x)) := by rw [h2, ← h1]
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias
- J. Avigad y P. Massot. Mathematics in Lean, p. 26.