equal
deleted
inserted
replaced
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" |