equal
deleted
inserted
replaced
791 using assms UNIV_I by (rule the_inv_into_f_f) |
791 using assms UNIV_I by (rule the_inv_into_f_f) |
792 |
792 |
793 |
793 |
794 subsection \<open>Cantor's Paradox\<close> |
794 subsection \<open>Cantor's Paradox\<close> |
795 |
795 |
796 lemma Cantors_paradox: "\<not> (\<exists>f. f ` A = Pow A)" |
796 theorem Cantors_paradox: "\<nexists>f. f ` A = Pow A" |
797 proof clarify |
797 proof |
798 fix f |
798 assume "\<exists>f. f ` A = Pow A" |
799 assume "f ` A = Pow A" |
799 then obtain f where f: "f ` A = Pow A" .. |
800 then have *: "Pow A \<subseteq> f ` A" by blast |
|
801 let ?X = "{a \<in> A. a \<notin> f a}" |
800 let ?X = "{a \<in> A. a \<notin> f a}" |
802 have "?X \<in> Pow A" unfolding Pow_def by auto |
801 have "?X \<in> Pow A" by blast |
803 with * obtain x where "x \<in> A \<and> f x = ?X" by blast |
802 then have "?X \<in> f ` A" by (simp only: f) |
804 then show False by best |
803 then obtain x where "x \<in> A" and "f x = ?X" by blast |
|
804 then show False by blast |
805 qed |
805 qed |
806 |
806 |
807 |
807 |
808 subsection \<open>Setup\<close> |
808 subsection \<open>Setup\<close> |
809 |
809 |