equal
deleted
inserted
replaced
429 by blast |
429 by blast |
430 |
430 |
431 lemma bex_triv_one_point2 [simp]: "(EX x:A. a = x) = (a:A)" |
431 lemma bex_triv_one_point2 [simp]: "(EX x:A. a = x) = (a:A)" |
432 by blast |
432 by blast |
433 |
433 |
434 lemma member_exists [code]: |
|
435 "a \<in> A \<longleftrightarrow> (\<exists>x\<in>A. a = x)" |
|
436 by (rule sym) (fact bex_triv_one_point2) |
|
437 |
|
438 lemma bex_one_point1 [simp]: "(EX x:A. x = a & P x) = (a:A & P a)" |
434 lemma bex_one_point1 [simp]: "(EX x:A. x = a & P x) = (a:A & P a)" |
439 by blast |
435 by blast |
440 |
436 |
441 lemma bex_one_point2 [simp]: "(EX x:A. a = x & P x) = (a:A & P a)" |
437 lemma bex_one_point2 [simp]: "(EX x:A. a = x & P x) = (a:A & P a)" |
442 by blast |
438 by blast |
1834 hide_const (open) project |
1830 hide_const (open) project |
1835 |
1831 |
1836 lemma member_project [simp]: |
1832 lemma member_project [simp]: |
1837 "x \<in> Set.project P A \<longleftrightarrow> x \<in> A \<and> P x" |
1833 "x \<in> Set.project P A \<longleftrightarrow> x \<in> A \<and> P x" |
1838 by (simp add: project_def) |
1834 by (simp add: project_def) |
1839 |
|
1840 lemma inter_project [code]: |
|
1841 "A \<inter> B = Set.project (\<lambda>x. x \<in> A) B" |
|
1842 by (auto simp add: project_def) |
|
1843 |
1835 |
1844 instantiation set :: (equal) equal |
1836 instantiation set :: (equal) equal |
1845 begin |
1837 begin |
1846 |
1838 |
1847 definition |
1839 definition |