equal
deleted
inserted
replaced
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 |