src/HOL/Fun.thy
changeset 53927 abe2b313f0e5
parent 52435 6646bb548c6b
child 54147 97a8ff4e4ac9
equal deleted inserted replaced
53918:0fc622be0185 53927:abe2b313f0e5
   489 lemma vimage_subset_eq: "bij f ==> (f -` B <= A) = (B <= f ` A)"
   489 lemma vimage_subset_eq: "bij f ==> (f -` B <= A) = (B <= f ` A)"
   490 apply (unfold bij_def)
   490 apply (unfold bij_def)
   491 apply (blast del: subsetI intro: vimage_subsetI vimage_subsetD)
   491 apply (blast del: subsetI intro: vimage_subsetI vimage_subsetD)
   492 done
   492 done
   493 
   493 
       
   494 lemma inj_on_image_eq_iff: "\<lbrakk> inj_on f C; A \<subseteq> C; B \<subseteq> C \<rbrakk> \<Longrightarrow> f ` A = f ` B \<longleftrightarrow> A = B"
       
   495 by(fastforce simp add: inj_on_def)
       
   496 
   494 lemma inj_on_Un_image_eq_iff: "inj_on f (A \<union> B) \<Longrightarrow> f ` A = f ` B \<longleftrightarrow> A = B"
   497 lemma inj_on_Un_image_eq_iff: "inj_on f (A \<union> B) \<Longrightarrow> f ` A = f ` B \<longleftrightarrow> A = B"
   495 by(blast dest: inj_onD)
   498 by(erule inj_on_image_eq_iff) simp_all
   496 
   499 
   497 lemma inj_on_image_Int:
   500 lemma inj_on_image_Int:
   498    "[| inj_on f C;  A<=C;  B<=C |] ==> f`(A Int B) = f`A Int f`B"
   501    "[| inj_on f C;  A<=C;  B<=C |] ==> f`(A Int B) = f`A Int f`B"
   499 apply (simp add: inj_on_def, blast)
   502 apply (simp add: inj_on_def, blast)
   500 done
   503 done