src/HOL/Analysis/Lebesgue_Measure.thy
changeset 70547 7ce95a5c4aa8
parent 70532 fcf3b891ccb1
child 70688 3d894e1cfc75
equal deleted inserted replaced
70542:011196c029e1 70547:7ce95a5c4aa8
   394     using minor space_restrict_space by fastforce
   394     using minor space_restrict_space by fastforce
   395   then show ?thesis
   395   then show ?thesis
   396     using major by auto
   396     using major by auto
   397 qed
   397 qed
   398 
   398 
       
   399 lemma integral_eq_zero_null_sets:
       
   400   assumes "S \<in> null_sets lebesgue"
       
   401   shows "integral\<^sup>L (lebesgue_on S) f = 0"
       
   402 proof (rule integral_eq_zero_AE)
       
   403   show "AE x in lebesgue_on S. f x = 0"
       
   404     by (metis (no_types, lifting) assms AE_not_in lebesgue_on_mono null_setsD2 null_sets_restrict_space order_refl)
       
   405 qed
       
   406 
   399 lemma
   407 lemma
   400   shows sets_lborel[simp, measurable_cong]: "sets lborel = sets borel"
   408   shows sets_lborel[simp, measurable_cong]: "sets lborel = sets borel"
   401     and space_lborel[simp]: "space lborel = space borel"
   409     and space_lborel[simp]: "space lborel = space borel"
   402     and measurable_lborel1[simp]: "measurable M lborel = measurable M borel"
   410     and measurable_lborel1[simp]: "measurable M lborel = measurable M borel"
   403     and measurable_lborel2[simp]: "measurable lborel M = measurable borel M"
   411     and measurable_lborel2[simp]: "measurable lborel M = measurable borel M"
   842   also have "\<dots> = density (completion (distr lebesgue lborel T)) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))"
   850   also have "\<dots> = density (completion (distr lebesgue lborel T)) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))"
   843     using c by (auto intro!: always_eventually prod_pos completion_density_eq simp: distr_completion cong: distr_cong)
   851     using c by (auto intro!: always_eventually prod_pos completion_density_eq simp: distr_completion cong: distr_cong)
   844   also have "\<dots> = density (distr lebesgue lebesgue T) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))"
   852   also have "\<dots> = density (distr lebesgue lebesgue T) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))"
   845     by (subst completion.completion_distr_eq) (auto simp: eq measurable_completion)
   853     by (subst completion.completion_distr_eq) (auto simp: eq measurable_completion)
   846   finally show "lebesgue = density (distr lebesgue lebesgue T) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))" .
   854   finally show "lebesgue = density (distr lebesgue lebesgue T) (\<lambda>_. (\<Prod>j\<in>Basis. \<bar>c j\<bar>))" .
       
   855 qed
       
   856 
       
   857 corollary lebesgue_real_affine:
       
   858   "c \<noteq> 0 \<Longrightarrow> lebesgue = density (distr lebesgue lebesgue (\<lambda>x. t + c * x)) (\<lambda>_. ennreal (abs c))"
       
   859     using lebesgue_affine_euclidean [where c= "\<lambda>x::real. c"] by simp
       
   860 
       
   861 lemma nn_integral_real_affine_lebesgue:
       
   862   fixes c :: real assumes f[measurable]: "f \<in> borel_measurable lebesgue" and c: "c \<noteq> 0"
       
   863   shows "(\<integral>\<^sup>+x. f x \<partial>lebesgue) = ennreal\<bar>c\<bar> * (\<integral>\<^sup>+x. f(t + c * x) \<partial>lebesgue)"
       
   864 proof -
       
   865   have "(\<integral>\<^sup>+x. f x \<partial>lebesgue) = (\<integral>\<^sup>+x. f x \<partial>density (distr lebesgue lebesgue (\<lambda>x. t + c * x)) (\<lambda>x. ennreal \<bar>c\<bar>))"
       
   866     using lebesgue_real_affine c by auto
       
   867   also have "\<dots> = \<integral>\<^sup>+ x. ennreal \<bar>c\<bar> * f x \<partial>distr lebesgue lebesgue (\<lambda>x. t + c * x)"
       
   868     by (subst nn_integral_density) auto
       
   869   also have "\<dots> = ennreal \<bar>c\<bar> * integral\<^sup>N (distr lebesgue lebesgue (\<lambda>x. t + c * x)) f"
       
   870     using f measurable_distr_eq1 nn_integral_cmult by blast
       
   871   also have "\<dots> = \<bar>c\<bar> * (\<integral>\<^sup>+x. f(t + c * x) \<partial>lebesgue)"
       
   872     using lebesgue_affine_measurable[where c= "\<lambda>x::real. c"]
       
   873     by (subst nn_integral_distr) (force+)
       
   874   finally show ?thesis .
   847 qed
   875 qed
   848 
   876 
   849 lemma lebesgue_measurable_scaling[measurable]: "(*\<^sub>R) x \<in> lebesgue \<rightarrow>\<^sub>M lebesgue"
   877 lemma lebesgue_measurable_scaling[measurable]: "(*\<^sub>R) x \<in> lebesgue \<rightarrow>\<^sub>M lebesgue"
   850 proof cases
   878 proof cases
   851   assume "x = 0"
   879   assume "x = 0"