src/HOL/Lifting_Set.thy
changeset 57599 7ef939f89776
parent 57129 7edb7550663e
child 58104 c5316f843f72
equal deleted inserted replaced
57598:56ed992b6d65 57599:7ef939f89776
   264 lemma vimage_parametric [transfer_rule]:
   264 lemma vimage_parametric [transfer_rule]:
   265   assumes [transfer_rule]: "bi_total A" "bi_unique B"
   265   assumes [transfer_rule]: "bi_total A" "bi_unique B"
   266   shows "((A ===> B) ===> rel_set B ===> rel_set A) vimage vimage"
   266   shows "((A ===> B) ===> rel_set B ===> rel_set A) vimage vimage"
   267   unfolding vimage_def[abs_def] by transfer_prover
   267   unfolding vimage_def[abs_def] by transfer_prover
   268 
   268 
       
   269 lemma Image_parametric [transfer_rule]:
       
   270   assumes "bi_unique A"
       
   271   shows "(rel_set (rel_prod A B) ===> rel_set A ===> rel_set B) op `` op ``"
       
   272 by(intro rel_funI rel_setI)
       
   273   (force dest: rel_setD1 bi_uniqueDr[OF assms], force dest: rel_setD2 bi_uniqueDl[OF assms])
       
   274 
   269 end
   275 end
   270 
   276 
   271 lemma (in comm_monoid_set) F_parametric [transfer_rule]:
   277 lemma (in comm_monoid_set) F_parametric [transfer_rule]:
   272   fixes A :: "'b \<Rightarrow> 'c \<Rightarrow> bool"
   278   fixes A :: "'b \<Rightarrow> 'c \<Rightarrow> bool"
   273   assumes "bi_unique A"
   279   assumes "bi_unique A"