src/HOL/List.thy
changeset 39302 d7728f65b353
parent 39272 0b61951d2682
child 39534 c798d4f1b682
equal deleted inserted replaced
39301:e1bd8a54c40f 39302:d7728f65b353
  2315 by(induct xs arbitrary:a) simp_all
  2315 by(induct xs arbitrary:a) simp_all
  2316 
  2316 
  2317 lemma foldl_apply:
  2317 lemma foldl_apply:
  2318   assumes "\<And>x. x \<in> set xs \<Longrightarrow> f x \<circ> h = h \<circ> g x"
  2318   assumes "\<And>x. x \<in> set xs \<Longrightarrow> f x \<circ> h = h \<circ> g x"
  2319   shows "foldl (\<lambda>s x. f x s) (h s) xs = h (foldl (\<lambda>s x. g x s) s xs)"
  2319   shows "foldl (\<lambda>s x. f x s) (h s) xs = h (foldl (\<lambda>s x. g x s) s xs)"
  2320   by (rule sym, insert assms, induct xs arbitrary: s) (simp_all add: ext_iff)
  2320   by (rule sym, insert assms, induct xs arbitrary: s) (simp_all add: fun_eq_iff)
  2321 
  2321 
  2322 lemma foldl_cong [fundef_cong, recdef_cong]:
  2322 lemma foldl_cong [fundef_cong, recdef_cong]:
  2323   "[| a = b; l = k; !!a x. x : set l ==> f a x = g a x |] 
  2323   "[| a = b; l = k; !!a x. x : set l ==> f a x = g a x |] 
  2324   ==> foldl f a l = foldl g b k"
  2324   ==> foldl f a l = foldl g b k"
  2325 by (induct k arbitrary: a b l) simp_all
  2325 by (induct k arbitrary: a b l) simp_all
  4562   @{prop "x \<in> set xs"} instead --- it is much easier to reason about.
  4562   @{prop "x \<in> set xs"} instead --- it is much easier to reason about.
  4563 *}
  4563 *}
  4564 
  4564 
  4565 lemma member_set:
  4565 lemma member_set:
  4566   "member = set"
  4566   "member = set"
  4567   by (simp add: ext_iff member_def mem_def)
  4567   by (simp add: fun_eq_iff member_def mem_def)
  4568 
  4568 
  4569 lemma member_rec [code]:
  4569 lemma member_rec [code]:
  4570   "member (x # xs) y \<longleftrightarrow> x = y \<or> member xs y"
  4570   "member (x # xs) y \<longleftrightarrow> x = y \<or> member xs y"
  4571   "member [] y \<longleftrightarrow> False"
  4571   "member [] y \<longleftrightarrow> False"
  4572   by (auto simp add: member_def)
  4572   by (auto simp add: member_def)