src/HOL/Library/FuncSet.thy
changeset 73932 fd21b4a93043
parent 73348 65c45cba3f54
child 75078 ec86cb2418e1
equal deleted inserted replaced
73866:66bff50bc5f1 73932:fd21b4a93043
   629 proof
   629 proof
   630   assume L: ?lhs
   630   assume L: ?lhs
   631   then show ?rhs
   631   then show ?rhs
   632     apply (rule_tac x="f \<circ> inv_into (Collect P) g" in exI)
   632     apply (rule_tac x="f \<circ> inv_into (Collect P) g" in exI)
   633     unfolding o_def
   633     unfolding o_def
   634     by (metis (mono_tags, hide_lams) f_inv_into_f imageI inv_into_into mem_Collect_eq)
   634     by (metis (mono_tags, opaque_lifting) f_inv_into_f imageI inv_into_into mem_Collect_eq)
   635 qed auto
   635 qed auto
   636 
   636 
   637 lemma function_factors_left:
   637 lemma function_factors_left:
   638   "(\<forall>x y. (g x = g y) \<longrightarrow> (f x = f y)) \<longleftrightarrow> (\<exists>h. f = h \<circ> g)"
   638   "(\<forall>x y. (g x = g y) \<longrightarrow> (f x = f y)) \<longleftrightarrow> (\<exists>h. f = h \<circ> g)"
   639   using function_factors_left_gen [of "\<lambda>x. True" g f] unfolding o_def by blast
   639   using function_factors_left_gen [of "\<lambda>x. True" g f] unfolding o_def by blast