# HG changeset patch # User Manuel Eberl # Date 1463567073 -7200 # Node ID 65f1d7829463d68e215d1b0cf4e4911fc7cbc48c # Parent aa5cffd8a6060d138847aaac13365a94388532e3 Resolved name clash diff -r aa5cffd8a606 -r 65f1d7829463 src/HOL/Groups_List.thy --- a/src/HOL/Groups_List.thy Tue May 17 19:27:42 2016 +0200 +++ b/src/HOL/Groups_List.thy Wed May 18 12:24:33 2016 +0200 @@ -259,7 +259,7 @@ "(\x. x \ set xs \ (x :: 'a :: ordered_comm_monoid_add) \ 0) \ listsum xs \ 0" by (induction xs) simp_all -lemma listsum_map_filter: +lemma (in monoid_add) listsum_map_filter': "listsum (map f (filter P xs)) = listsum (map (\x. if P x then f x else 0) xs)" by (induction xs) simp_all diff -r aa5cffd8a606 -r 65f1d7829463 src/HOL/Probability/Probability_Mass_Function.thy --- a/src/HOL/Probability/Probability_Mass_Function.thy Tue May 17 19:27:42 2016 +0200 +++ b/src/HOL/Probability/Probability_Mass_Function.thy Wed May 18 12:24:33 2016 +0200 @@ -1809,7 +1809,7 @@ proof - have "(\\<^sup>+ x. ennreal (listsum (map snd (filter (\z. fst z = x) xs))) \count_space UNIV) = (\\<^sup>+ x. ennreal (listsum (map (\(x',p). indicator {x'} x * p) xs)) \count_space UNIV)" - by (intro nn_integral_cong ennreal_cong, subst listsum_map_filter) (auto intro: listsum_cong) + by (intro nn_integral_cong ennreal_cong, subst listsum_map_filter') (auto intro: listsum_cong) also have "\ = (\(x',p)\xs. (\\<^sup>+ x. ennreal (indicator {x'} x * p) \count_space UNIV))" using assms(1) proof (induction xs) @@ -1901,7 +1901,7 @@ by (intro setsum.cong) (auto simp: indicator_def) also have "\ = (\x\set (map fst xs). (\xa = 0.. x \ A then snd (xs ! xa) else 0))" - by (intro setsum.cong refl, subst listsum_map_filter, subst listsum_setsum_nth) simp + by (intro setsum.cong refl, subst listsum_map_filter', subst listsum_setsum_nth) simp also have "\ = (\xa = 0..x\set (map fst xs). if fst (xs ! xa) = x \ x \ A then snd (xs ! xa) else 0))" by (rule setsum.commute) @@ -1911,7 +1911,7 @@ also have "\ = (\xa = 0.. A then snd (xs ! xa) else 0)" by (intro setsum.cong refl) (simp_all add: setsum.delta) also have "\ = listsum (map snd (filter (\x. fst x \ A) xs))" - by (subst listsum_map_filter, subst listsum_setsum_nth) simp_all + by (subst listsum_map_filter', subst listsum_setsum_nth) simp_all finally show ?thesis . qed