src/HOL/Library/Mapping.thy
changeset 63343 fb5d8a50c641
parent 63239 d562c9948dee
child 63462 c1fe30f2bc32
equal deleted inserted replaced
63342:49fa6aaa4529 63343:fb5d8a50c641
    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"