diff -r 3928b3448f38 -r f4a7697011c5 src/HOL/Finite_Set.thy --- a/src/HOL/Finite_Set.thy Tue Jul 26 22:53:06 2011 +0200 +++ b/src/HOL/Finite_Set.thy Wed Jul 27 19:34:30 2011 +0200 @@ -280,14 +280,18 @@ blast qed -lemma finite_vimageI: - "finite F \ inj h \ finite (h -` F)" +lemma finite_vimage_IntI: + "finite F \ inj_on h A \ finite (h -` F \ A)" apply (induct rule: finite_induct) apply simp_all apply (subst vimage_insert) - apply (simp add: finite_subset [OF inj_vimage_singleton]) + apply (simp add: finite_subset [OF inj_on_vimage_singleton] Int_Un_distrib2) done +lemma finite_vimageI: + "finite F \ inj h \ finite (h -` F)" + using finite_vimage_IntI[of F h UNIV] by auto + lemma finite_vimageD: assumes fin: "finite (h -` F)" and surj: "surj h" shows "finite F"