# HG changeset patch # User Manuel Eberl # Date 1544703095 -3600 # Node ID bea49e443909db49d5f8d945911d5ee2fce4797e # Parent 7258ebf38662649c60926e8e49db4cb762fc8e45 tagged more of HOL-Analysis diff -r 7258ebf38662 -r bea49e443909 src/HOL/Analysis/Nonnegative_Lebesgue_Integration.thy --- a/src/HOL/Analysis/Nonnegative_Lebesgue_Integration.thy Wed Dec 12 20:51:50 2018 +0100 +++ b/src/HOL/Analysis/Nonnegative_Lebesgue_Integration.thy Thu Dec 13 13:11:35 2018 +0100 @@ -9,7 +9,7 @@ imports Measure_Space Borel_Space begin -subsection \Approximating functions\ +subsection%unimportant \Approximating functions\ lemma AE_upper_bound_inf_ennreal: fixes F G::"'a \ ennreal" @@ -115,7 +115,7 @@ \ -definition "simple_function M g \ +definition%important "simple_function M g \ finite (g ` space M) \ (\x \ g ` space M. g -` {x} \ space M \ sets M)" @@ -301,11 +301,11 @@ shows "simple_function M (\x. real (f x))" by (rule simple_function_compose1[OF sf]) -lemma borel_measurable_implies_simple_function_sequence: +lemma%important borel_measurable_implies_simple_function_sequence: fixes u :: "'a \ ennreal" assumes u[measurable]: "u \ borel_measurable M" shows "\f. incseq f \ (\i. (\x. f i x < top) \ simple_function M (f i)) \ u = (SUP i. f i)" -proof - +proof%unimportant - define f where [abs_def]: "f i x = real_of_int (floor (enn2real (min i (u x)) * 2^i)) / 2^i" for i x @@ -396,7 +396,8 @@ "\i. simple_function M (f i)" "incseq f" "\i x. f i x < top" "\x. (SUP i. f i x) = u x" using borel_measurable_implies_simple_function_sequence[OF u] by (auto simp: fun_eq_iff) blast -lemma simple_function_induct[consumes 1, case_names cong set mult add, induct set: simple_function]: +lemma%important simple_function_induct + [consumes 1, case_names cong set mult add, induct set: simple_function]: fixes u :: "'a \ ennreal" assumes u: "simple_function M u" assumes cong: "\f g. simple_function M f \ simple_function M g \ (AE x in M. f x = g x) \ P f \ P g" @@ -404,7 +405,7 @@ assumes mult: "\u c. P u \ P (\x. c * u x)" assumes add: "\u v. P u \ P v \ P (\x. v x + u x)" shows "P u" -proof (rule cong) +proof%unimportant (rule cong) from AE_space show "AE x in M. (\y\u ` space M. y * indicator (u -` {y} \ space M) x) = u x" proof eventually_elim fix x assume x: "x \ space M" @@ -466,7 +467,8 @@ qed fact qed -lemma borel_measurable_induct[consumes 1, case_names cong set mult add seq, induct set: borel_measurable]: +lemma%important borel_measurable_induct + [consumes 1, case_names cong set mult add seq, induct set: borel_measurable]: fixes u :: "'a \ ennreal" assumes u: "u \ borel_measurable M" assumes cong: "\f g. f \ borel_measurable M \ g \ borel_measurable M \ (\x. x \ space M \ f x = g x) \ P g \ P f" @@ -475,8 +477,8 @@ assumes add: "\u v. u \ borel_measurable M\ (\x. x \ space M \ u x < top) \ P u \ v \ borel_measurable M \ (\x. x \ space M \ v x < top) \ (\x. x \ space M \ u x = 0 \ v x = 0) \ P v \ P (\x. v x + u x)" assumes seq: "\U. (\i. U i \ borel_measurable M) \ (\i x. x \ space M \ U i x < top) \ (\i. P (U i)) \ incseq U \ u = (SUP i. U i) \ P (SUP i. U i)" shows "P u" - using u -proof (induct rule: borel_measurable_implies_simple_function_sequence') + using%unimportant u +proof%unimportant (induct rule: borel_measurable_implies_simple_function_sequence') fix U assume U: "\i. simple_function M (U i)" "incseq U" "\i x. U i x < top" and sup: "\x. (SUP i. U i x) = u x" have u_eq: "u = (SUP i. U i)" using u sup by auto @@ -577,7 +579,7 @@ subsection "Simple integral" -definition simple_integral :: "'a measure \ ('a \ ennreal) \ ennreal" ("integral\<^sup>S") where +definition%important simple_integral :: "'a measure \ ('a \ ennreal) \ ennreal" ("integral\<^sup>S") where "integral\<^sup>S M f = (\x \ f ` space M. x * emeasure M (f -` {x} \ space M))" syntax @@ -810,7 +812,7 @@ subsection \Integral on nonnegative functions\ -definition nn_integral :: "'a measure \ ('a \ ennreal) \ ennreal" ("integral\<^sup>N") where +definition%important nn_integral :: "'a measure \ ('a \ ennreal) \ ennreal" ("integral\<^sup>N") where "integral\<^sup>N M f = (SUP g \ {g. simple_function M g \ g \ f}. integral\<^sup>S M g)" syntax @@ -995,7 +997,7 @@ by (subst nn_integral_monotone_convergence_SUP) (auto simp: mono_def le_fun_def) qed -lemma nn_integral_monotone_convergence_SUP_AE: +theorem nn_integral_monotone_convergence_SUP_AE: assumes f: "\i. AE x in M. f i x \ f (Suc i) x" "\i. f i \ borel_measurable M" shows "(\\<^sup>+ x. (SUP i. f i x) \M) = (SUP i. integral\<^sup>N M (f i))" proof - @@ -1131,7 +1133,7 @@ "(\i. i \ P \ f i \ borel_measurable M) \ (\\<^sup>+ x. (\i\P. f i x) \M) = (\i\P. integral\<^sup>N M (f i))" by (induction P rule: infinite_finite_induct) (auto simp: nn_integral_add) -lemma nn_integral_suminf: +theorem nn_integral_suminf: assumes f: "\i. f i \ borel_measurable M" shows "(\\<^sup>+ x. (\i. f i x) \M) = (\i. integral\<^sup>N M (f i))" proof - @@ -1175,7 +1177,7 @@ finally show ?thesis . qed -lemma nn_integral_Markov_inequality: +theorem nn_integral_Markov_inequality: assumes u: "u \ borel_measurable M" and "A \ sets M" shows "(emeasure M) ({x\space M. 1 \ c * u x} \ A) \ c * (\\<^sup>+ x. u x * indicator A x \M)" (is "(emeasure M) ?A \ _ * ?PI") @@ -1305,7 +1307,7 @@ by (simp add: ennreal_INF_const_minus) qed (insert *, auto intro!: nn_integral_mono intro: INF_lower) -lemma nn_integral_monotone_convergence_INF_AE: +theorem nn_integral_monotone_convergence_INF_AE: fixes f :: "nat \ 'a \ ennreal" assumes f: "\i. AE x in M. f (Suc i) x \ f i x" and [measurable]: "\i. f i \ borel_measurable M" @@ -1337,7 +1339,7 @@ shows "(\\<^sup>+ x. (INF i. f i x) \M) = (INF i. integral\<^sup>N M (f i))" using nn_integral_monotone_convergence_INF_AE[of f M i, OF _ *] f by (auto simp: decseq_Suc_iff le_fun_def) -lemma nn_integral_liminf: +theorem nn_integral_liminf: fixes u :: "nat \ 'a \ ennreal" assumes u: "\i. u i \ borel_measurable M" shows "(\\<^sup>+ x. liminf (\n. u n x) \M) \ liminf (\n. integral\<^sup>N M (u n))" @@ -1351,7 +1353,7 @@ finally show ?thesis . qed -lemma nn_integral_limsup: +theorem nn_integral_limsup: fixes u :: "nat \ 'a \ ennreal" assumes [measurable]: "\i. u i \ borel_measurable M" "w \ borel_measurable M" assumes bounds: "\i. AE x in M. u i x \ w x" and w: "(\\<^sup>+x. w x \M) < \" @@ -1384,7 +1386,7 @@ finally show ?thesis . qed -lemma nn_integral_dominated_convergence: +theorem nn_integral_dominated_convergence: assumes [measurable]: "\i. u i \ borel_measurable M" "u' \ borel_measurable M" "w \ borel_measurable M" and bound: "\j. AE x in M. u j x \ w x" @@ -1572,7 +1574,7 @@ by (simp add: F_def) qed -lemma nn_integral_lfp: +theorem nn_integral_lfp: assumes sets[simp]: "\s. sets (M s) = sets N" assumes f: "sup_continuous f" assumes g: "sup_continuous g" @@ -1587,7 +1589,7 @@ (auto simp: mono_def fun_eq_iff intro!: arg_cong2[where f=emeasure] cong: measurable_cong_sets) qed (auto simp add: step le_fun_def SUP_apply[abs_def] bot_fun_def bot_ennreal intro!: meas f g) -lemma nn_integral_gfp: +theorem nn_integral_gfp: assumes sets[simp]: "\s. sets (M s) = sets N" assumes f: "inf_continuous f" and g: "inf_continuous g" assumes meas: "\F. F \ borel_measurable N \ f F \ borel_measurable N" @@ -1619,6 +1621,7 @@ by (subst step) auto qed (insert bound, auto simp add: le_fun_def INF_apply[abs_def] top_fun_def intro!: meas f g) +(* TODO: rename? *) subsection \Integral under concrete measures\ lemma nn_integral_mono_measure: @@ -1645,7 +1648,7 @@ lemma nn_integral_bot[simp]: "nn_integral bot f = 0" by (simp add: nn_integral_empty) -subsubsection \Distributions\ +subsubsection%unimportant \Distributions\ lemma nn_integral_distr: assumes T: "T \ measurable M M'" and f: "f \ borel_measurable (distr M M' T)" @@ -1670,7 +1673,7 @@ qed (simp_all add: measurable_compose[OF T] T nn_integral_cmult nn_integral_add nn_integral_monotone_convergence_SUP le_fun_def incseq_def) -subsubsection \Counting space\ +subsubsection%unimportant \Counting space\ lemma simple_function_count_space[simp]: "simple_function (count_space A) f \ finite (f ` A)" @@ -2083,7 +2086,7 @@ subsubsection \Measure spaces with an associated density\ -definition density :: "'a measure \ ('a \ ennreal) \ 'a measure" where +definition%important density :: "'a measure \ ('a \ ennreal) \ 'a measure" where "density M f = measure_of (space M) (sets M) (\A. \\<^sup>+ x. f x * indicator A x \M)" lemma @@ -2170,11 +2173,11 @@ by (intro exI[of _ "N \ {x\space M. f x = 0}"] conjI *) (auto elim: eventually_elim2) qed -lemma nn_integral_density: +lemma%important nn_integral_density: assumes f: "f \ borel_measurable M" assumes g: "g \ borel_measurable M" shows "integral\<^sup>N (density M f) g = (\\<^sup>+ x. f x * g x \M)" -using g proof induct +using%unimportant g proof%unimportant induct case (cong u v) then show ?case apply (subst nn_integral_cong[OF cong(3)]) @@ -2293,7 +2296,7 @@ subsubsection \Point measure\ -definition point_measure :: "'a set \ ('a \ ennreal) \ 'a measure" where +definition%important point_measure :: "'a set \ ('a \ ennreal) \ 'a measure" where "point_measure A f = density (count_space A) f" lemma @@ -2359,7 +2362,7 @@ subsubsection \Uniform measure\ -definition "uniform_measure M A = density M (\x. indicator A x / emeasure M A)" +definition%important "uniform_measure M A = density M (\x. indicator A x / emeasure M A)" lemma shows sets_uniform_measure[simp, measurable_cong]: "sets (uniform_measure M A) = sets M" @@ -2434,7 +2437,7 @@ unfolding uniform_measure_def by (simp add: AE_density) qed -subsubsection \Null measure\ +subsubsection%unimportant \Null measure\ lemma null_measure_eq_density: "null_measure M = density M (\_. 0)" by (intro measure_eqI) (simp_all add: emeasure_density) @@ -2451,7 +2454,7 @@ subsubsection \Uniform count measure\ -definition "uniform_count_measure A = point_measure A (\x. 1 / card A)" +definition%important "uniform_count_measure A = point_measure A (\x. 1 / card A)" lemma shows space_uniform_count_measure: "space (uniform_count_measure A) = A" @@ -2480,7 +2483,7 @@ "UNIV = sets (uniform_count_measure UNIV) \ True" by(simp_all add: sets_uniform_count_measure) -subsubsection \Scaled measure\ +subsubsection%unimportant \Scaled measure\ lemma nn_integral_scale_measure: assumes f: "f \ borel_measurable M"