src/HOL/Lifting_Set.thy
changeset 69275 9bbd5497befd
parent 68521 1bad08165162
child 70927 cc204e10385c
equal deleted inserted replaced
69274:ff7e6751a1a7 69275:9bbd5497befd
   132 
   132 
   133 lemma image_transfer [transfer_rule]:
   133 lemma image_transfer [transfer_rule]:
   134   "((A ===> B) ===> rel_set A ===> rel_set B) image image"
   134   "((A ===> B) ===> rel_set A ===> rel_set B) image image"
   135   unfolding rel_fun_def rel_set_def by simp fast
   135   unfolding rel_fun_def rel_set_def by simp fast
   136 
   136 
   137 lemma UNION_transfer [transfer_rule]:
   137 lemma UNION_transfer [transfer_rule]: \<comment> \<open>TODO deletion candidate\<close>
   138   "(rel_set A ===> (A ===> rel_set B) ===> rel_set B) UNION UNION"
   138   "(rel_set A ===> (A ===> rel_set B) ===> rel_set B) (\<lambda>A f. \<Union>(f ` A)) (\<lambda>A f. \<Union>(f ` A))"
   139   by transfer_prover
   139   by transfer_prover
   140 
   140 
   141 lemma Ball_transfer [transfer_rule]:
   141 lemma Ball_transfer [transfer_rule]:
   142   "(rel_set A ===> (A ===> (=)) ===> (=)) Ball Ball"
   142   "(rel_set A ===> (A ===> (=)) ===> (=)) Ball Ball"
   143   unfolding rel_set_def rel_fun_def by fast
   143   unfolding rel_set_def rel_fun_def by fast
   170 
   170 
   171 lemma bind_transfer [transfer_rule]:
   171 lemma bind_transfer [transfer_rule]:
   172   "(rel_set A ===> (A ===> rel_set B) ===> rel_set B) Set.bind Set.bind"
   172   "(rel_set A ===> (A ===> rel_set B) ===> rel_set B) Set.bind Set.bind"
   173   unfolding bind_UNION [abs_def] by transfer_prover
   173   unfolding bind_UNION [abs_def] by transfer_prover
   174 
   174 
   175 lemma INF_parametric [transfer_rule]:
   175 lemma INF_parametric [transfer_rule]: \<comment> \<open>TODO deletion candidate\<close>
   176   "(rel_set A ===> (A ===> HOL.eq) ===> HOL.eq) INFIMUM INFIMUM"
   176   "(rel_set A ===> (A ===> HOL.eq) ===> HOL.eq) (\<lambda>A f. Inf (f ` A)) (\<lambda>A f. Inf (f ` A))"
   177   by transfer_prover
   177   by transfer_prover
   178 
   178 
   179 lemma SUP_parametric [transfer_rule]:
   179 lemma SUP_parametric [transfer_rule]: \<comment> \<open>TODO deletion candidate\<close>
   180   "(rel_set R ===> (R ===> HOL.eq) ===> HOL.eq) SUPREMUM SUPREMUM"
   180   "(rel_set R ===> (R ===> HOL.eq) ===> HOL.eq) (\<lambda>A f. Sup (f ` A)) (\<lambda>A f. Sup (f ` A))"
   181   by transfer_prover
   181   by transfer_prover
   182 
   182 
   183 
   183 
   184 subsubsection \<open>Rules requiring bi-unique, bi-total or right-total relations\<close>
   184 subsubsection \<open>Rules requiring bi-unique, bi-total or right-total relations\<close>
   185 
   185 
   314 lemmas sum_parametric = sum.F_parametric
   314 lemmas sum_parametric = sum.F_parametric
   315 lemmas prod_parametric = prod.F_parametric
   315 lemmas prod_parametric = prod.F_parametric
   316 
   316 
   317 lemma rel_set_UNION:
   317 lemma rel_set_UNION:
   318   assumes [transfer_rule]: "rel_set Q A B" "rel_fun Q (rel_set R) f g"
   318   assumes [transfer_rule]: "rel_set Q A B" "rel_fun Q (rel_set R) f g"
   319   shows "rel_set R (UNION A f) (UNION B g)"
   319   shows "rel_set R (\<Union>(f ` A)) (\<Union>(g ` B))"
   320   by transfer_prover
   320   by transfer_prover
   321 
   321 
   322 end
   322 end