src/HOL/Probability/Probability_Mass_Function.thy
changeset 66089 def95e0bc529
parent 65395 7504569a73c7
child 66192 e5b84854baa4
equal deleted inserted replaced
66088:c9c9438cfc0f 66089:def95e0bc529
  2109   also have "\<dots> = (\<Sum>xa = 0..<length xs. (\<Sum>x\<in>set (map fst xs).
  2109   also have "\<dots> = (\<Sum>xa = 0..<length xs. (\<Sum>x\<in>set (map fst xs).
  2110                      if fst (xs ! xa) = x \<and> x \<in> A then snd (xs ! xa) else 0))"
  2110                      if fst (xs ! xa) = x \<and> x \<in> A then snd (xs ! xa) else 0))"
  2111     by (rule sum.commute)
  2111     by (rule sum.commute)
  2112   also have "\<dots> = (\<Sum>xa = 0..<length xs. if fst (xs ! xa) \<in> A then
  2112   also have "\<dots> = (\<Sum>xa = 0..<length xs. if fst (xs ! xa) \<in> A then
  2113                      (\<Sum>x\<in>set (map fst xs). if x = fst (xs ! xa) then snd (xs ! xa) else 0) else 0)"
  2113                      (\<Sum>x\<in>set (map fst xs). if x = fst (xs ! xa) then snd (xs ! xa) else 0) else 0)"
  2114     by (auto intro!: sum.cong sum.neutral)
  2114     by (auto intro!: sum.cong sum.neutral simp del: sum.delta)
  2115   also have "\<dots> = (\<Sum>xa = 0..<length xs. if fst (xs ! xa) \<in> A then snd (xs ! xa) else 0)"
  2115   also have "\<dots> = (\<Sum>xa = 0..<length xs. if fst (xs ! xa) \<in> A then snd (xs ! xa) else 0)"
  2116     by (intro sum.cong refl) (simp_all add: sum.delta)
  2116     by (intro sum.cong refl) (simp_all add: sum.delta)
  2117   also have "\<dots> = sum_list (map snd (filter (\<lambda>x. fst x \<in> A) xs))"
  2117   also have "\<dots> = sum_list (map snd (filter (\<lambda>x. fst x \<in> A) xs))"
  2118     by (subst sum_list_map_filter', subst sum_list_sum_nth) simp_all
  2118     by (subst sum_list_map_filter', subst sum_list_sum_nth) simp_all
  2119   finally show ?thesis .
  2119   finally show ?thesis .