equal
deleted
inserted
replaced
12 |
12 |
13 lemma map_of_foldr: \<comment> \<open>FIXME move\<close> |
13 lemma map_of_foldr: \<comment> \<open>FIXME move\<close> |
14 "map_of xs = foldr (\<lambda>(k, v) m. m(k \<mapsto> v)) xs Map.empty" |
14 "map_of xs = foldr (\<lambda>(k, v) m. m(k \<mapsto> v)) xs Map.empty" |
15 using map_add_map_of_foldr [of Map.empty] by auto |
15 using map_add_map_of_foldr [of Map.empty] by auto |
16 |
16 |
17 context |
17 context includes lifting_syntax |
18 begin |
18 begin |
19 |
|
20 interpretation lifting_syntax . |
|
21 |
19 |
22 lemma empty_parametric: |
20 lemma empty_parametric: |
23 "(A ===> rel_option B) Map.empty Map.empty" |
21 "(A ===> rel_option B) Map.empty Map.empty" |
24 by transfer_prover |
22 by transfer_prover |
25 |
23 |
217 instance |
215 instance |
218 by standard (unfold equal_mapping_def, transfer, auto) |
216 by standard (unfold equal_mapping_def, transfer, auto) |
219 |
217 |
220 end |
218 end |
221 |
219 |
222 context |
220 context includes lifting_syntax |
223 begin |
221 begin |
224 |
|
225 interpretation lifting_syntax . |
|
226 |
222 |
227 lemma [transfer_rule]: |
223 lemma [transfer_rule]: |
228 assumes [transfer_rule]: "bi_total A" |
224 assumes [transfer_rule]: "bi_total A" |
229 assumes [transfer_rule]: "bi_unique B" |
225 assumes [transfer_rule]: "bi_unique B" |
230 shows "(pcr_mapping A B ===> pcr_mapping A B ===> op=) HOL.eq HOL.equal" |
226 shows "(pcr_mapping A B ===> pcr_mapping A B ===> op=) HOL.eq HOL.equal" |