# HG changeset patch # User paulson # Date 1501789085 -7200 # Node ID 9786b06c7b5ad1d1a4fe67e6e6490d38156f35a2 # Parent b66e0e5941a2efa8722be56cc1522bc46c9d80a7 eliminated more "guess", etc. diff -r b66e0e5941a2 -r 9786b06c7b5a src/HOL/Analysis/Equivalence_Lebesgue_Henstock_Integration.thy --- a/src/HOL/Analysis/Equivalence_Lebesgue_Henstock_Integration.thy Thu Aug 03 14:15:25 2017 +0200 +++ b/src/HOL/Analysis/Equivalence_Lebesgue_Henstock_Integration.thy Thu Aug 03 21:38:05 2017 +0200 @@ -7,6 +7,24 @@ imports Lebesgue_Measure Henstock_Kurzweil_Integration Complete_Measure Set_Integral begin +lemma finite_product_dependent: (*FIXME DELETE*) + assumes "finite s" + and "\x. x \ s \ finite (t x)" + shows "finite {(i, j) |i j. i \ s \ j \ t i}" + using assms +proof induct + case (insert x s) + have *: "{(i, j) |i j. i \ insert x s \ j \ t i} = + (\y. (x,y)) ` (t x) \ {(i, j) |i j. i \ s \ j \ t i}" by auto + show ?case + unfolding * + apply (rule finite_UnI) + using insert + apply auto + done +qed auto + + lemma le_left_mono: "x \ y \ y \ a \ x \ (a::'a::preorder)" by (auto intro: order_trans) @@ -1633,11 +1651,16 @@ then show "\e>0. \i\d. x \ i \ ball x e \ i = {}" by force qed - from choice[OF this] guess k .. note k=conjunctD2[OF this[rule_format],rule_format] - + then obtain k where k: "\x. 0 < k x" + "\i x. \i \ d; x \ i\ \ ball x (k x) \ i = {}" + by metis have "e/2 > 0" using e by auto - from henstock_lemma[OF assms(1) this] guess g . note g=this[rule_format] + from henstock_lemma[OF assms(1) this] + obtain g where g: "gauge g" + "\p. \p tagged_partial_division_of cbox a b; g fine p\ + \ (\(x, k)\p. norm (content k *\<^sub>R f x - integral k f)) < e / 2" + by (metis (no_types, lifting)) let ?g = "\x. g x \ ball x (k x)" show ?case apply (rule_tac x="?g" in exI) @@ -1716,15 +1739,12 @@ assume y: "y \ cbox a b" then have "\x l. (x, l) \ p \ y\l" unfolding p'(6)[symmetric] by auto - then guess x l by (elim exE) note xl=conjunctD2[OF this] + then obtain x l where xl: "(x, l) \ p" "y \ l" by metis then have "\k. k \ d \ y \ k" using y unfolding d'(6)[symmetric] by auto - then guess i .. note i = conjunctD2[OF this] + then obtain i where i: "i \ d" "y \ i" by metis have "x \ i" - using fineD[OF p(3) xl(1)] - using k(2)[OF i(1), of x] - using i(2) xl(2) - by auto + using fineD[OF p(3) xl(1)] using k(2) i xl by auto then show "y \ \{k. \x. (x, k) \ p'}" unfolding p'_def Union_iff apply (rule_tac x="i \ l" in bexI) @@ -1735,12 +1755,7 @@ qed then have "(\(x, k)\p'. norm (content k *\<^sub>R f x - integral k f)) < e / 2" - apply - - apply (rule g(2)[rule_format]) - unfolding tagged_division_of_def - apply safe - apply (rule gp') - done + using g(2) gp' tagged_division_of_def by blast then have **: "\(\(x,k)\p'. norm (content k *\<^sub>R f x)) - (\(x,k)\p'. norm (integral k f))\ < e / 2" unfolding split_def using p'' diff -r b66e0e5941a2 -r 9786b06c7b5a src/HOL/Analysis/Lebesgue_Integral_Substitution.thy --- a/src/HOL/Analysis/Lebesgue_Integral_Substitution.thy Thu Aug 03 14:15:25 2017 +0200 +++ b/src/HOL/Analysis/Lebesgue_Integral_Substitution.thy Thu Aug 03 21:38:05 2017 +0200 @@ -13,23 +13,6 @@ begin -lemma finite_product_dependent: (*FIXME DELETE*) - assumes "finite s" - and "\x. x \ s \ finite (t x)" - shows "finite {(i, j) |i j. i \ s \ j \ t i}" - using assms -proof induct - case (insert x s) - have *: "{(i, j) |i j. i \ insert x s \ j \ t i} = - (\y. (x,y)) ` (t x) \ {(i, j) |i j. i \ s \ j \ t i}" by auto - show ?case - unfolding * - apply (rule finite_UnI) - using insert - apply auto - done -qed auto - lemma nn_integral_substitution_aux: fixes f :: "real \ ennreal" assumes Mf: "f \ borel_measurable borel"