src/HOL/Library/RBT.thy
changeset 37462 802619d7576d
parent 37053 a89b47a94b19
child 38857 97775f3e8722
equal deleted inserted replaced
37461:3489cea0e0e9 37462:802619d7576d
   141 lemma lookup_map [simp]:
   141 lemma lookup_map [simp]:
   142   "lookup (map f t) k = Option.map (f k) (lookup t k)"
   142   "lookup (map f t) k = Option.map (f k) (lookup t k)"
   143   by (simp add: map_def lookup_RBT lookup_map lookup_impl_of)
   143   by (simp add: map_def lookup_RBT lookup_map lookup_impl_of)
   144 
   144 
   145 lemma fold_fold:
   145 lemma fold_fold:
   146   "fold f t = (\<lambda>s. foldl (\<lambda>s (k, v). f k v s) s (entries t))"
   146   "fold f t = More_List.fold (prod_case f) (entries t)"
   147   by (simp add: fold_def expand_fun_eq RBT_Impl.fold_def entries_impl_of)
   147   by (simp add: fold_def expand_fun_eq RBT_Impl.fold_def entries_impl_of)
   148 
   148 
   149 lemma is_empty_empty [simp]:
   149 lemma is_empty_empty [simp]:
   150   "is_empty t \<longleftrightarrow> t = empty"
   150   "is_empty t \<longleftrightarrow> t = empty"
   151   by (simp add: rbt_eq is_empty_def impl_of_empty split: rbt.split)
   151   by (simp add: rbt_eq is_empty_def impl_of_empty split: rbt.split)