src/HOL/Analysis/Equivalence_Lebesgue_Henstock_Integration.thy
changeset 70378 ebd108578ab1
parent 70365 4df0628e8545
child 70380 2b0dca68c3ee
equal deleted inserted replaced
70367:81b65ddac59f 70378:ebd108578ab1
  1166     then show "(\<integral>\<^sup>+ x. ennreal (if x \<in> cbox a b then indicator S x else 0) \<partial>lebesgue) = ennreal 0"
  1166     then show "(\<integral>\<^sup>+ x. ennreal (if x \<in> cbox a b then indicator S x else 0) \<partial>lebesgue) = ennreal 0"
  1167       using S[THEN AE_not_in] by (auto intro!: nn_integral_0_iff_AE[THEN iffD2])
  1167       using S[THEN AE_not_in] by (auto intro!: nn_integral_0_iff_AE[THEN iffD2])
  1168   qed auto
  1168   qed auto
  1169 qed
  1169 qed
  1170 
  1170 
       
  1171 corollary eventually_ae_filter_negligible:
       
  1172   "eventually P (ae_filter lebesgue) \<longleftrightarrow> (\<exists>N. negligible N \<and> {x. \<not> P x} \<subseteq> N)"
       
  1173   by (auto simp: completion.AE_iff_null_sets negligible_iff_null_sets null_sets_completion_subset)
       
  1174 
  1171 lemma starlike_negligible:
  1175 lemma starlike_negligible:
  1172   assumes "closed S"
  1176   assumes "closed S"
  1173       and eq1: "\<And>c x. (a + c *\<^sub>R x) \<in> S \<Longrightarrow> 0 \<le> c \<Longrightarrow> a + x \<in> S \<Longrightarrow> c = 1"
  1177       and eq1: "\<And>c x. (a + c *\<^sub>R x) \<in> S \<Longrightarrow> 0 \<le> c \<Longrightarrow> a + x \<in> S \<Longrightarrow> c = 1"
  1174     shows "negligible S"
  1178     shows "negligible S"
  1175 proof -
  1179 proof -
  1559     by blast
  1563     by blast
  1560   have e22: "0 < e/2 / (2 * B * real DIM('M)) ^ DIM('N)"
  1564   have e22: "0 < e/2 / (2 * B * real DIM('M)) ^ DIM('N)"
  1561     using \<open>0 < e\<close> \<open>0 < B\<close> by (simp add: divide_simps)
  1565     using \<open>0 < e\<close> \<open>0 < B\<close> by (simp add: divide_simps)
  1562   obtain T where "open T" "S \<subseteq> T" "(T - S) \<in> lmeasurable" 
  1566   obtain T where "open T" "S \<subseteq> T" "(T - S) \<in> lmeasurable" 
  1563                  "measure lebesgue (T - S) < e/2 / (2 * B * DIM('M)) ^ DIM('N)"
  1567                  "measure lebesgue (T - S) < e/2 / (2 * B * DIM('M)) ^ DIM('N)"
  1564     by (rule lmeasurable_outer_open [OF \<open>S \<in> sets lebesgue\<close> e22])
  1568     using sets_lebesgue_outer_open [OF \<open>S \<in> sets lebesgue\<close> e22]
       
  1569     by (metis emeasure_eq_measure2 ennreal_leI linorder_not_le)
  1565   then have T: "measure lebesgue T \<le> e/2 / (2 * B * DIM('M)) ^ DIM('N)"
  1570   then have T: "measure lebesgue T \<le> e/2 / (2 * B * DIM('M)) ^ DIM('N)"
  1566     using \<open>negligible S\<close> by (simp add: measure_Diff_null_set negligible_iff_null_sets)
  1571     using \<open>negligible S\<close> by (simp add: measure_Diff_null_set negligible_iff_null_sets)
  1567   have "\<exists>r. 0 < r \<and> r \<le> 1/2 \<and>
  1572   have "\<exists>r. 0 < r \<and> r \<le> 1/2 \<and>
  1568             (x \<in> S \<longrightarrow> (\<forall>y. norm(y - x) < r
  1573             (x \<in> S \<longrightarrow> (\<forall>y. norm(y - x) < r
  1569                        \<longrightarrow> y \<in> T \<and> (y \<in> S \<longrightarrow> norm(f y - f x) \<le> B * norm(y - x))))"
  1574                        \<longrightarrow> y \<in> T \<and> (y \<in> S \<longrightarrow> norm(f y - f x) \<le> B * norm(y - x))))"
  3561 
  3566 
  3562 lemma dominated_convergence:
  3567 lemma dominated_convergence:
  3563   fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space"
  3568   fixes f :: "nat \<Rightarrow> 'n::euclidean_space \<Rightarrow> 'm::euclidean_space"
  3564   assumes f: "\<And>k. (f k) integrable_on S" and h: "h integrable_on S"
  3569   assumes f: "\<And>k. (f k) integrable_on S" and h: "h integrable_on S"
  3565     and le: "\<And>k x. x \<in> S \<Longrightarrow> norm (f k x) \<le> h x"
  3570     and le: "\<And>k x. x \<in> S \<Longrightarrow> norm (f k x) \<le> h x"
  3566     and conv: "\<forall>x \<in> S. (\<lambda>k. f k x) \<longlonglongrightarrow> g x"
  3571     and conv: "\<And>x. x \<in> S \<Longrightarrow> (\<lambda>k. f k x) \<longlonglongrightarrow> g x"
  3567   shows "g integrable_on S" "(\<lambda>k. integral S (f k)) \<longlonglongrightarrow> integral S g"
  3572   shows "g integrable_on S" "(\<lambda>k. integral S (f k)) \<longlonglongrightarrow> integral S g"
  3568 proof -
  3573 proof -
  3569   have 3: "h absolutely_integrable_on S"
  3574   have 3: "h absolutely_integrable_on S"
  3570     unfolding absolutely_integrable_on_def
  3575     unfolding absolutely_integrable_on_def
  3571   proof
  3576   proof
  3707     show "(\<lambda>x. if x \<in> (\<Union>m\<le>n. s m) then f x else 0) integrable_on UNIV" for n
  3712     show "(\<lambda>x. if x \<in> (\<Union>m\<le>n. s m) then f x else 0) integrable_on UNIV" for n
  3708       unfolding integrable_restrict_UNIV
  3713       unfolding integrable_restrict_UNIV
  3709       using fU absolutely_integrable_on_def by blast
  3714       using fU absolutely_integrable_on_def by blast
  3710     show "(\<lambda>x. if x \<in> \<Union>(s ` UNIV) then norm(f x) else 0) integrable_on UNIV"
  3715     show "(\<lambda>x. if x \<in> \<Union>(s ` UNIV) then norm(f x) else 0) integrable_on UNIV"
  3711       by (metis (no_types) absolutely_integrable_on_def f integrable_restrict_UNIV)
  3716       by (metis (no_types) absolutely_integrable_on_def f integrable_restrict_UNIV)
  3712     show "\<forall>x\<in>UNIV.
  3717     show "\<And>x. (\<lambda>n. if x \<in> (\<Union>m\<le>n. s m) then f x else 0)
  3713          (\<lambda>n. if x \<in> (\<Union>m\<le>n. s m) then f x else 0)
       
  3714          \<longlonglongrightarrow> (if x \<in> \<Union>(s ` UNIV) then f x else 0)"
  3718          \<longlonglongrightarrow> (if x \<in> \<Union>(s ` UNIV) then f x else 0)"
  3715       by (force intro: tendsto_eventually eventually_sequentiallyI)
  3719       by (force intro: tendsto_eventually eventually_sequentiallyI)
  3716   qed auto
  3720   qed auto
  3717   then show "?F \<longlonglongrightarrow> ?I"
  3721   then show "?F \<longlonglongrightarrow> ?I"
  3718     by (simp only: integral_restrict_UNIV)
  3722     by (simp only: integral_restrict_UNIV)