src/HOL/Set.thy
changeset 46156 f58b7f9d3920
parent 46146 6baea4fca6bd
child 46459 73823dbbecc4
equal deleted inserted replaced
46155:f27cf421500a 46156:f58b7f9d3920
   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