src/HOL/Map.thy
changeset 14027 68d247b7b14b
parent 14026 c031a330a03f
child 14033 bc723de8ec95
equal deleted inserted replaced
14026:c031a330a03f 14027:68d247b7b14b
   199 lemma map_add_assoc[simp]: "m1 ++ (m2 ++ m3) = (m1 ++ m2) ++ m3"
   199 lemma map_add_assoc[simp]: "m1 ++ (m2 ++ m3) = (m1 ++ m2) ++ m3"
   200 apply(rule ext)
   200 apply(rule ext)
   201 apply(simp add: map_add_def split:option.split)
   201 apply(simp add: map_add_def split:option.split)
   202 done
   202 done
   203 
   203 
   204 lemma map_add_comm: "dom m1 \<inter> dom m2 = {} \<Longrightarrow> m1++m2 = m2++m1"
       
   205 apply(rule ext)
       
   206 apply(fastsimp simp:map_add_def split:option.split)
       
   207 done
       
   208 
       
   209 lemma map_add_Some_iff: 
   204 lemma map_add_Some_iff: 
   210  "((m ++ n) k = Some x) = (n k = Some x | n k = None & m k = Some x)"
   205  "((m ++ n) k = Some x) = (n k = Some x | n k = None & m k = Some x)"
   211 apply (unfold map_add_def)
   206 apply (unfold map_add_def)
   212 apply (simp (no_asm) split add: option.split)
   207 apply (simp (no_asm) split add: option.split)
   213 done
   208 done
   338 
   333 
   339 lemma dom_overwrite[simp]:
   334 lemma dom_overwrite[simp]:
   340  "dom(f(g|A)) = (dom f  - {a. a : A - dom g}) Un {a. a : A Int dom g}"
   335  "dom(f(g|A)) = (dom f  - {a. a : A - dom g}) Un {a. a : A Int dom g}"
   341 by(auto simp add: dom_def overwrite_def)
   336 by(auto simp add: dom_def overwrite_def)
   342 
   337 
       
   338 lemma map_add_comm: "dom m1 \<inter> dom m2 = {} \<Longrightarrow> m1++m2 = m2++m1"
       
   339 apply(rule ext)
       
   340 apply(fastsimp simp:map_add_def split:option.split)
       
   341 done
       
   342 
   343 subsection {* ran *}
   343 subsection {* ran *}
   344 
   344 
   345 lemma ran_empty[simp]: "ran empty = {}"
   345 lemma ran_empty[simp]: "ran empty = {}"
   346 apply (unfold ran_def)
   346 apply (unfold ran_def)
   347 apply (simp (no_asm))
   347 apply (simp (no_asm))