equal
deleted
inserted
replaced
115 lift_definition cBex :: "'a cset \<Rightarrow> ('a \<Rightarrow> bool) \<Rightarrow> bool" is Bex parametric Bex_transfer . |
115 lift_definition cBex :: "'a cset \<Rightarrow> ('a \<Rightarrow> bool) \<Rightarrow> bool" is Bex parametric Bex_transfer . |
116 lift_definition cUNION :: "'a cset \<Rightarrow> ('a \<Rightarrow> 'b cset) \<Rightarrow> 'b cset" |
116 lift_definition cUNION :: "'a cset \<Rightarrow> ('a \<Rightarrow> 'b cset) \<Rightarrow> 'b cset" |
117 is "UNION" parametric UNION_transfer by simp |
117 is "UNION" parametric UNION_transfer by simp |
118 definition cUnion :: "'a cset cset \<Rightarrow> 'a cset" where "cUnion A = cUNION A id" |
118 definition cUnion :: "'a cset cset \<Rightarrow> 'a cset" where "cUnion A = cUNION A id" |
119 |
119 |
120 lemma Union_conv_UNION: "\<Union>A = UNION A id" |
120 lemma Union_conv_UNION: "\<Union>A = \<Union>(id ` A)" |
121 by auto |
121 by auto |
122 |
122 |
123 lemma cUnion_transfer [transfer_rule]: |
123 lemma cUnion_transfer [transfer_rule]: |
124 "rel_fun (pcr_cset (pcr_cset A)) (pcr_cset A) Union cUnion" |
124 "rel_fun (pcr_cset (pcr_cset A)) (pcr_cset A) Union cUnion" |
125 proof - |
125 proof - |
126 have "rel_fun (pcr_cset (pcr_cset A)) (pcr_cset A) (\<lambda>A. UNION A id) (\<lambda>A. cUNION A id)" |
126 have "rel_fun (pcr_cset (pcr_cset A)) (pcr_cset A) (\<lambda>A. \<Union>(id ` A)) (\<lambda>A. cUNION A id)" |
127 by transfer_prover |
127 by transfer_prover |
128 then show ?thesis by (simp flip: cUnion_def) |
128 then show ?thesis by (simp flip: cUnion_def) |
129 qed |
129 qed |
130 |
130 |
131 lemmas cset_eqI = set_eqI[Transfer.transferred] |
131 lemmas cset_eqI = set_eqI[Transfer.transferred] |