Last active
August 15, 2020 16:52
-
-
Save pedrominicz/fd162f7e278460ca155c20b28f4d8f11 to your computer and use it in GitHub Desktop.
Simple proof of Cantor's theorem.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import set_theory.cardinal | |
-- https://www.youtube.com/watch?v=3ZHacSgSj0Q | |
variable {α : Type} | |
lemma not_exists_surj : ¬ ∃ f : α → set α, function.surjective f := | |
begin | |
intro h, | |
cases h with f hf, | |
let s := {x | x ∉ f x}, | |
have hs : ∃ x, _ := hf s, | |
cases hs with x hx, | |
have : x ∈ s ↔ x ∈ f x, by rw hx, | |
simp only [set.mem_set_of_eq] at this, | |
simpa | |
end | |
prefix # := cardinal.mk | |
theorem cantor : #α < #(set α) := | |
begin | |
split, | |
{ let f : α → set α := λ x, {x}, | |
refine ⟨⟨f, _⟩⟩, | |
intros x₁ x₂ hx, | |
simpa using hx }, | |
{ rintro ⟨⟨f, hf⟩⟩, | |
refine not_exists_surj ⟨function.inv_fun f, _⟩, | |
exact function.inv_fun_surjective hf } | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment