La equipotencia es una relación reflexiva
Dos conjuntos \(A\) y \(B\) son equipotentes (y se denota por \(A ≃ B\)) si existe una aplicación biyectiva entre ellos. La equipotencia se puede definir en Lean por
def es_equipotente (A B : Type _) : Prop := ∃ g : A → B, Bijective g local infixr:50 " ⋍ " => es_equipotente
Demostrar que la relación de equipotencia es reflexiva.
Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Tactic open Function def es_equipotente (A B : Type _) : Prop := ∃ g : A → B, Bijective g local infixr:50 " ⋍ " => es_equipotente example : Reflexive (. ⋍ .) := by sorry
1. Demostración en lenguaje natural
Tenemos que demostra que para cualquier conjunto \(X\), se tiene que \(X\) es equipotente con \(X\). Para demostrarlo basta considerar que la función identidad en \(X\) es una biyección de \(X\) en \(X\).
2. Demostraciones con Lean4
import Mathlib.Tactic open Function def es_equipotente (A B : Type _) : Prop := ∃ g : A → B, Bijective g local infixr:50 " ⋍ " => es_equipotente -- 1ª demostración -- =============== example : Reflexive (. ⋍ .) := by intro X -- ⊢ X ⋍ X use id -- ⊢ Bijective id exact bijective_id -- 2ª demostración -- =============== example : Reflexive (. ⋍ .) := by intro X -- ⊢ X ⋍ X exact ⟨id, bijective_id⟩ -- 3ª demostración -- =============== example : Reflexive (. ⋍ .) := fun _ ↦ ⟨id, bijective_id⟩ -- Lemas usados -- ============ -- #check (bijective_id : Bijective id)
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
3. Demostraciones con Isabelle/HOL
theory La_equipotencia_es_una_relacion_reflexiva imports Main "HOL-Library.Equipollence" begin (* 1ª demostración *) lemma "reflp (≈)" proof (rule reflpI) fix x :: "'a set" have "bij_betw id x x" by (simp only: bij_betw_id) then have "∃f. bij_betw f x x" by (simp only: exI) then show "x ≈ x" by (simp only: eqpoll_def) qed (* 2ª demostración *) lemma "reflp (≈)" by (simp only: reflpI eqpoll_refl) (* 3ª demostración *) lemma "reflp (≈)" by (simp add: reflpI) end