src/HOL/Set.thy
changeset 43898 935359fd8210
parent 43866 8a50dc70cbff
child 43967 610efb6bda1f
equal deleted inserted replaced
43893:f3e75541cb78 43898:935359fd8210
   878 
   878 
   879 text {*
   879 text {*
   880   \medskip Range of a function -- just a translation for image!
   880   \medskip Range of a function -- just a translation for image!
   881 *}
   881 *}
   882 
   882 
       
   883 lemma image_ident [simp]: "(%x. x) ` Y = Y"
       
   884   by blast
       
   885 
   883 lemma range_eqI: "b = f x ==> b \<in> range f"
   886 lemma range_eqI: "b = f x ==> b \<in> range f"
   884   by simp
   887   by simp
   885 
   888 
   886 lemma rangeI: "f x \<in> range f"
   889 lemma rangeI: "f x \<in> range f"
   887   by simp
   890   by simp
  1161   by (auto simp add: image_def)
  1164   by (auto simp add: image_def)
  1162 
  1165 
  1163 lemma image_cong: "M = N ==> (!!x. x \<in> N ==> f x = g x) ==> f`M = g`N"
  1166 lemma image_cong: "M = N ==> (!!x. x \<in> N ==> f x = g x) ==> f`M = g`N"
  1164   by (simp add: image_def)
  1167   by (simp add: image_def)
  1165 
  1168 
       
  1169 lemma image_Int_subset: "f`(A Int B) <= f`A Int f`B"
       
  1170 by blast
       
  1171 
       
  1172 lemma image_diff_subset: "f`A - f`B <= f`(A - B)"
       
  1173 by blast
       
  1174 
  1166 
  1175 
  1167 text {* \medskip @{text range}. *}
  1176 text {* \medskip @{text range}. *}
  1168 
  1177 
  1169 lemma full_SetCompr_eq [no_atp]: "{u. \<exists>x. u = f x} = range f"
  1178 lemma full_SetCompr_eq [no_atp]: "{u. \<exists>x. u = f x} = range f"
  1170   by auto
  1179   by auto
  1671 
  1680 
  1672 lemma vimage_inter_cong:
  1681 lemma vimage_inter_cong:
  1673   "(\<And> w. w \<in> S \<Longrightarrow> f w = g w) \<Longrightarrow> f -` y \<inter> S = g -` y \<inter> S"
  1682   "(\<And> w. w \<in> S \<Longrightarrow> f w = g w) \<Longrightarrow> f -` y \<inter> S = g -` y \<inter> S"
  1674   by auto
  1683   by auto
  1675 
  1684 
  1676 lemma image_Int_subset: "f`(A Int B) <= f`A Int f`B"
  1685 lemma vimage_ident [simp]: "(%x. x) -` Y = Y"
  1677 by blast
  1686   by blast
  1678 
       
  1679 lemma image_diff_subset: "f`A - f`B <= f`(A - B)"
       
  1680 by blast
       
  1681 
  1687 
  1682 
  1688 
  1683 subsubsection {* Getting the Contents of a Singleton Set *}
  1689 subsubsection {* Getting the Contents of a Singleton Set *}
  1684 
  1690 
  1685 definition the_elem :: "'a set \<Rightarrow> 'a" where
  1691 definition the_elem :: "'a set \<Rightarrow> 'a" where