src/HOL/Analysis/Equivalence_Lebesgue_Henstock_Integration.thy
changeset 69922 4a9167f377b0
parent 69661 a03a63b81f44
child 70271 f7630118814c
equal deleted inserted replaced
69918:eddcc7c726f3 69922:4a9167f377b0
  2030 
  2030 
  2031 
  2031 
  2032 subsection\<open>Negligibility is a local property\<close>
  2032 subsection\<open>Negligibility is a local property\<close>
  2033 
  2033 
  2034 lemma locally_negligible_alt:
  2034 lemma locally_negligible_alt:
  2035     "negligible S \<longleftrightarrow> (\<forall>x \<in> S. \<exists>U. openin (subtopology euclidean S) U \<and> x \<in> U \<and> negligible U)"
  2035     "negligible S \<longleftrightarrow> (\<forall>x \<in> S. \<exists>U. openin (top_of_set S) U \<and> x \<in> U \<and> negligible U)"
  2036      (is "_ = ?rhs")
  2036      (is "_ = ?rhs")
  2037 proof
  2037 proof
  2038   assume "negligible S"
  2038   assume "negligible S"
  2039   then show ?rhs
  2039   then show ?rhs
  2040     using openin_subtopology_self by blast
  2040     using openin_subtopology_self by blast
  2041 next
  2041 next
  2042   assume ?rhs
  2042   assume ?rhs
  2043   then obtain U where ope: "\<And>x. x \<in> S \<Longrightarrow> openin (subtopology euclidean S) (U x)"
  2043   then obtain U where ope: "\<And>x. x \<in> S \<Longrightarrow> openin (top_of_set S) (U x)"
  2044     and cov: "\<And>x. x \<in> S \<Longrightarrow> x \<in> U x"
  2044     and cov: "\<And>x. x \<in> S \<Longrightarrow> x \<in> U x"
  2045     and neg: "\<And>x. x \<in> S \<Longrightarrow> negligible (U x)"
  2045     and neg: "\<And>x. x \<in> S \<Longrightarrow> negligible (U x)"
  2046     by metis
  2046     by metis
  2047   obtain \<F> where "\<F> \<subseteq> U ` S" "countable \<F>" and eq: "\<Union>\<F> = \<Union>(U ` S)"
  2047   obtain \<F> where "\<F> \<subseteq> U ` S" "countable \<F>" and eq: "\<Union>\<F> = \<Union>(U ` S)"
  2048     using ope by (force intro: Lindelof_openin [of "U ` S" S])
  2048     using ope by (force intro: Lindelof_openin [of "U ` S" S])
  4491   have "negligible {x \<in> U n. f x \<in> T}" if "n > 0" for n
  4491   have "negligible {x \<in> U n. f x \<in> T}" if "n > 0" for n
  4492   proof (subst locally_negligible_alt, clarify)
  4492   proof (subst locally_negligible_alt, clarify)
  4493     fix a
  4493     fix a
  4494     assume a: "a \<in> U n" and fa: "f a \<in> T"
  4494     assume a: "a \<in> U n" and fa: "f a \<in> T"
  4495     define V where "V \<equiv> {x. x \<in> U n \<and> f x \<in> T} \<inter> ball a (1 / n / 2)"
  4495     define V where "V \<equiv> {x. x \<in> U n \<and> f x \<in> T} \<inter> ball a (1 / n / 2)"
  4496     show "\<exists>V. openin (subtopology euclidean {x \<in> U n. f x \<in> T}) V \<and> a \<in> V \<and> negligible V"
  4496     show "\<exists>V. openin (top_of_set {x \<in> U n. f x \<in> T}) V \<and> a \<in> V \<and> negligible V"
  4497     proof (intro exI conjI)
  4497     proof (intro exI conjI)
  4498       have noxy: "norm(x - y) \<le> n * norm(f x - f y)" if "x \<in> V" "y \<in> V" for x y
  4498       have noxy: "norm(x - y) \<le> n * norm(f x - f y)" if "x \<in> V" "y \<in> V" for x y
  4499         using that unfolding U_def V_def mem_Collect_eq Int_iff mem_ball dist_norm
  4499         using that unfolding U_def V_def mem_Collect_eq Int_iff mem_ball dist_norm
  4500         by (meson norm_triangle_half_r)
  4500         by (meson norm_triangle_half_r)
  4501       then have "inj_on f V"
  4501       then have "inj_on f V"