191 lemma If_the_inv_into_f_f: |
191 lemma If_the_inv_into_f_f: |
192 "\<lbrakk>i \<in> C; inj_on g C\<rbrakk> \<Longrightarrow> |
192 "\<lbrakk>i \<in> C; inj_on g C\<rbrakk> \<Longrightarrow> |
193 ((\<lambda>i. if i \<in> g ` C then the_inv_into C g i else x) o g) i = id i" |
193 ((\<lambda>i. if i \<in> g ` C then the_inv_into C g i else x) o g) i = id i" |
194 unfolding Func_def by (auto elim: the_inv_into_f_f) |
194 unfolding Func_def by (auto elim: the_inv_into_f_f) |
195 |
195 |
196 definition vimagep where |
196 definition vimage2p where |
197 "vimagep f g R = (\<lambda>x y. R (f x) (g y))" |
197 "vimage2p f g R = (\<lambda>x y. R (f x) (g y))" |
198 |
198 |
199 lemma vimagepI: "R (f x) (g y) \<Longrightarrow> vimagep f g R x y" |
199 lemma vimage2pI: "R (f x) (g y) \<Longrightarrow> vimage2p f g R x y" |
200 unfolding vimagep_def by - |
200 unfolding vimage2p_def by - |
201 |
201 |
202 lemma vimagepD: "vimagep f g R x y \<Longrightarrow> R (f x) (g y)" |
202 lemma vimage2pD: "vimage2p f g R x y \<Longrightarrow> R (f x) (g y)" |
203 unfolding vimagep_def by - |
203 unfolding vimage2p_def by - |
204 |
204 |
205 lemma fun_rel_iff_leq_vimagep: "(fun_rel R S) f g = (R \<le> vimagep f g S)" |
205 lemma fun_rel_iff_leq_vimage2p: "(fun_rel R S) f g = (R \<le> vimage2p f g S)" |
206 unfolding fun_rel_def vimagep_def by auto |
206 unfolding fun_rel_def vimage2p_def by auto |
207 |
207 |
208 lemma convol_image_vimagep: "<f o fst, g o snd> ` Collect (split (vimagep f g R)) \<subseteq> Collect (split R)" |
208 lemma convol_image_vimage2p: "<f o fst, g o snd> ` Collect (split (vimage2p f g R)) \<subseteq> Collect (split R)" |
209 unfolding vimagep_def convol_def by auto |
209 unfolding vimage2p_def convol_def by auto |
210 |
210 |
211 ML_file "Tools/bnf_def_tactics.ML" |
211 ML_file "Tools/bnf_def_tactics.ML" |
212 ML_file "Tools/bnf_def.ML" |
212 ML_file "Tools/bnf_def.ML" |
213 |
213 |
214 |
214 |