src/HOL/Probability/Nonnegative_Lebesgue_Integration.thy
changeset 59452 2538b2c51769
parent 59426 6fca83e88417
child 59587 8ea7b22525cb
equal deleted inserted replaced
59451:86be42bb5174 59452:2538b2c51769
   942     with u_range show "incseq (\<lambda>i. u x * (emeasure M) (?B' (u x) i))" "\<And>i. 0 \<le> u x * (emeasure M) (?B' (u x) i)"
   942     with u_range show "incseq (\<lambda>i. u x * (emeasure M) (?B' (u x) i))" "\<And>i. 0 \<le> u x * (emeasure M) (?B' (u x) i)"
   943       using B_mono B_u by (auto intro!: emeasure_mono ereal_mult_left_mono incseq_SucI simp: ereal_zero_le_0_iff)
   943       using B_mono B_u by (auto intro!: emeasure_mono ereal_mult_left_mono incseq_SucI simp: ereal_zero_le_0_iff)
   944   next
   944   next
   945     show "integral\<^sup>S M u = (\<Sum>i\<in>u ` space M. SUP n. i * (emeasure M) (?B' i n))"
   945     show "integral\<^sup>S M u = (\<Sum>i\<in>u ` space M. SUP n. i * (emeasure M) (?B' i n))"
   946       using measure_conv u_range B_u unfolding simple_integral_def
   946       using measure_conv u_range B_u unfolding simple_integral_def
   947       by (auto intro!: setsum.cong SUP_ereal_cmult [symmetric])
   947       by (auto intro!: setsum.cong SUP_ereal_mult_left [symmetric])
   948   qed
   948   qed
   949   moreover
   949   moreover
   950   have "a * (SUP i. integral\<^sup>S M (?uB i)) \<le> ?S"
   950   have "a * (SUP i. integral\<^sup>S M (?uB i)) \<le> ?S"
   951     apply (subst SUP_ereal_cmult [symmetric])
   951     apply (subst SUP_ereal_mult_left [symmetric])
   952   proof (safe intro!: SUP_mono bexI)
   952   proof (safe intro!: SUP_mono bexI)
   953     fix i
   953     fix i
   954     have "a * integral\<^sup>S M (?uB i) = (\<integral>\<^sup>Sx. a * ?uB i x \<partial>M)"
   954     have "a * integral\<^sup>S M (?uB i) = (\<integral>\<^sup>Sx. a * ?uB i x \<partial>M)"
   955       using B `simple_function M u` u_range
   955       using B `simple_function M u` u_range
   956       by (subst simple_integral_mult) (auto split: split_indicator)
   956       by (subst simple_integral_mult) (auto split: split_indicator)
  1113     { fix x
  1113     { fix x
  1114       { fix i have "a * u i x \<noteq> -\<infinity>" "v i x \<noteq> -\<infinity>" "u i x \<noteq> -\<infinity>" using `0 \<le> a` u(6)[of i x] v(6)[of i x]
  1114       { fix i have "a * u i x \<noteq> -\<infinity>" "v i x \<noteq> -\<infinity>" "u i x \<noteq> -\<infinity>" using `0 \<le> a` u(6)[of i x] v(6)[of i x]
  1115           by auto }
  1115           by auto }
  1116       then have "(SUP i. a * u i x + v i x) = a * (SUP i. u i x) + (SUP i. v i x)"
  1116       then have "(SUP i. a * u i x + v i x) = a * (SUP i. u i x) + (SUP i. v i x)"
  1117         using `0 \<le> a` u(3) v(3) u(6)[of _ x] v(6)[of _ x]
  1117         using `0 \<le> a` u(3) v(3) u(6)[of _ x] v(6)[of _ x]
  1118         by (subst SUP_ereal_cmult [symmetric, OF u(6) `0 \<le> a`])
  1118         by (subst SUP_ereal_mult_left [symmetric, OF _ u(6) `0 \<le> a`])
  1119            (auto intro!: SUP_ereal_add
  1119            (auto intro!: SUP_ereal_add
  1120                  simp: incseq_Suc_iff le_fun_def add_mono ereal_mult_left_mono) }
  1120                  simp: incseq_Suc_iff le_fun_def add_mono ereal_mult_left_mono) }
  1121     then show "AE x in M. (SUP i. l i x) = (SUP i. ?L' i x)"
  1121     then show "AE x in M. (SUP i. l i x) = (SUP i. ?L' i x)"
  1122       unfolding l(5) using `0 \<le> a` u(5) v(5) l(5) f(2) g(2)
  1122       unfolding l(5) using `0 \<le> a` u(5) v(5) l(5) f(2) g(2)
  1123       by (intro AE_I2) (auto split: split_max)
  1123       by (intro AE_I2) (auto split: split_max)
  1125   also have "\<dots> = (SUP i. a * integral\<^sup>S M (u i) + integral\<^sup>S M (v i))"
  1125   also have "\<dots> = (SUP i. a * integral\<^sup>S M (u i) + integral\<^sup>S M (v i))"
  1126     using u(2, 6) v(2, 6) `0 \<le> a` by (auto intro!: arg_cong[where f="SUPREMUM UNIV"] ext)
  1126     using u(2, 6) v(2, 6) `0 \<le> a` by (auto intro!: arg_cong[where f="SUPREMUM UNIV"] ext)
  1127   finally have "(\<integral>\<^sup>+ x. max 0 (a * f x + g x) \<partial>M) = a * (\<integral>\<^sup>+x. max 0 (f x) \<partial>M) + (\<integral>\<^sup>+x. max 0 (g x) \<partial>M)"
  1127   finally have "(\<integral>\<^sup>+ x. max 0 (a * f x + g x) \<partial>M) = a * (\<integral>\<^sup>+x. max 0 (f x) \<partial>M) + (\<integral>\<^sup>+x. max 0 (g x) \<partial>M)"
  1128     unfolding l(5)[symmetric] u(5)[symmetric] v(5)[symmetric]
  1128     unfolding l(5)[symmetric] u(5)[symmetric] v(5)[symmetric]
  1129     unfolding l(1)[symmetric] u(1)[symmetric] v(1)[symmetric]
  1129     unfolding l(1)[symmetric] u(1)[symmetric] v(1)[symmetric]
  1130     apply (subst SUP_ereal_cmult [symmetric, OF pos(1) `0 \<le> a`])
  1130     apply (subst SUP_ereal_mult_left [symmetric, OF _ pos(1) `0 \<le> a`])
  1131     apply (subst SUP_ereal_add [symmetric, OF inc not_MInf]) .
  1131     apply simp
       
  1132     apply (subst SUP_ereal_add [symmetric, OF inc not_MInf])
       
  1133     .
  1132   then show ?thesis by (simp add: nn_integral_max_0)
  1134   then show ?thesis by (simp add: nn_integral_max_0)
  1133 qed
  1135 qed
  1134 
  1136 
  1135 lemma nn_integral_cmult:
  1137 lemma nn_integral_cmult:
  1136   assumes f: "f \<in> borel_measurable M" "0 \<le> c"
  1138   assumes f: "f \<in> borel_measurable M" "0 \<le> c"
  2118   with add f show ?case
  2120   with add f show ?case
  2119     by (auto simp add: nn_integral_add ereal_zero_le_0_iff intro!: nn_integral_add[symmetric])
  2121     by (auto simp add: nn_integral_add ereal_zero_le_0_iff intro!: nn_integral_add[symmetric])
  2120 next
  2122 next
  2121   case (seq U)
  2123   case (seq U)
  2122   from f(2) have eq: "AE x in M. f x * (SUP i. U i x) = (SUP i. f x * U i x)"
  2124   from f(2) have eq: "AE x in M. f x * (SUP i. U i x) = (SUP i. f x * U i x)"
  2123     by eventually_elim (simp add: SUP_ereal_cmult seq)
  2125     by eventually_elim (simp add: SUP_ereal_mult_left seq)
  2124   from seq f show ?case
  2126   from seq f show ?case
  2125     apply (simp add: nn_integral_monotone_convergence_SUP)
  2127     apply (simp add: nn_integral_monotone_convergence_SUP)
  2126     apply (subst nn_integral_cong_AE[OF eq])
  2128     apply (subst nn_integral_cong_AE[OF eq])
  2127     apply (subst nn_integral_monotone_convergence_SUP_AE)
  2129     apply (subst nn_integral_monotone_convergence_SUP_AE)
  2128     apply (auto simp: incseq_def le_fun_def intro!: ereal_mult_left_mono)
  2130     apply (auto simp: incseq_def le_fun_def intro!: ereal_mult_left_mono)