Skip to main content

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