La unión de los pares e impares es el conjunto de los naturales
Los conjuntos de los números naturales, de los pares y de los impares se definen en Lean4 por
def Naturales : Set ℕ := {n | True} def Pares : Set ℕ := {n | Even n} def Impares : Set ℕ := {n | ¬Even n}
Demostrar con Lean4 que
Pares ∪ Impares = Naturales
Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Algebra.Ring.Parity def Naturales : Set ℕ := {n | True} def Pares : Set ℕ := {n | Even n} def Impares : Set ℕ := {n | ¬Even n} example : Pares ∪ Impares = Naturales := by sorry
1. Demostración en lenguaje natural
Tenemos que demostrar que \[ \{n | \text{Even}(n)\} ∪ \{n | ¬\text{Even}(n)\} = \{n | \text{True}\} \] es decir, \[ n ∈ \{n | \text{Even}(n)\} ∪ \{n | ¬\text{Even}(n)\} ↔ n ∈ \{n | \text{True}\} \] que se reduce a \[ ⊢ \text{Even}(n) ∨ ¬\text{Even}(n) \] que es una tautología.
2. Demostraciones con Lean4
import Mathlib.Algebra.Ring.Parity def Naturales : Set ℕ := {_n | True} def Pares : Set ℕ := {n | Even n} def Impares : Set ℕ := {n | ¬Even n} -- 1ª demostración -- =============== example : Pares ∪ Impares = Naturales := by unfold Pares Impares Naturales -- ⊢ {n | Even n} ∪ {n | ¬Even n} = {n | True} ext n -- ⊢ n ∈ {n | Even n} ∪ {n | ¬Even n} ↔ n ∈ {n | True} simp only [Set.mem_setOf_eq, iff_true] -- ⊢ n ∈ {n | Even n} ∪ {n | ¬Even n} exact em (Even n) -- 2ª demostración -- =============== example : Pares ∪ Impares = Naturales := by unfold Pares Impares Naturales -- ⊢ {n | Even n} ∪ {n | ¬Even n} = {n | True} ext n -- ⊢ n ∈ {n | Even n} ∪ {n | ¬Even n} ↔ n ∈ {n | True} tauto
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
3. Demostraciones con Isabelle/HOL
theory Union_de_pares_e_impares imports Main begin definition naturales :: "nat set" where "naturales = {n∈ℕ . True}" definition pares :: "nat set" where "pares = {n∈ℕ . even n}" definition impares :: "nat set" where "impares = {n∈ℕ . ¬ even n}" (* 1ª demostración *) lemma "pares ∪ impares = naturales" proof - have "∀ n ∈ ℕ . even n ∨ ¬ even n ⟷ True" by simp then have "{n ∈ ℕ. even n} ∪ {n ∈ ℕ. ¬ even n} = {n ∈ ℕ. True}" by auto then show "pares ∪ impares = naturales" by (simp add: naturales_def pares_def impares_def) qed (* 2ª demostración *) lemma "pares ∪ impares = naturales" unfolding naturales_def pares_def impares_def by auto end