src/HOL/Multivariate_Analysis/Integration.thy
changeset 36725 34c36a5cb808
parent 36587 534418d8d494
child 36778 739a9379e29b
equal deleted inserted replaced
36724:5779d9fbedd0 36725:34c36a5cb808
  2531         proof- fix x l a b assume as:"x = l \<inter> {x. \<bar>x $ k - c\<bar> \<le> d}" "(a, b) \<in> p" "l = snd (a, b)"
  2531         proof- fix x l a b assume as:"x = l \<inter> {x. \<bar>x $ k - c\<bar> \<le> d}" "(a, b) \<in> p" "l = snd (a, b)"
  2532           guess u v using p'(4)[OF as(2)] apply-by(erule exE)+ note * = this
  2532           guess u v using p'(4)[OF as(2)] apply-by(erule exE)+ note * = this
  2533           show "content x \<ge> 0" unfolding as snd_conv * interval_doublesplit by(rule content_pos_le)
  2533           show "content x \<ge> 0" unfolding as snd_conv * interval_doublesplit by(rule content_pos_le)
  2534         qed have **:"norm (1::real) \<le> 1" by auto note division_doublesplit[OF p'',unfolded interval_doublesplit]
  2534         qed have **:"norm (1::real) \<le> 1" by auto note division_doublesplit[OF p'',unfolded interval_doublesplit]
  2535         note dsum_bound[OF this **,unfolded interval_doublesplit[THEN sym]]
  2535         note dsum_bound[OF this **,unfolded interval_doublesplit[THEN sym]]
  2536         note this[unfolded real_scaleR_def real_norm_def class_semiring.semiring_rules, of k c d] note le_less_trans[OF this d(2)]
  2536         note this[unfolded real_scaleR_def real_norm_def normalizing.semiring_rules, of k c d] note le_less_trans[OF this d(2)]
  2537         from this[unfolded abs_of_nonneg[OF *]] show "(\<Sum>ka\<in>snd ` p. content (ka \<inter> {x. \<bar>x $ k - c\<bar> \<le> d})) < e"
  2537         from this[unfolded abs_of_nonneg[OF *]] show "(\<Sum>ka\<in>snd ` p. content (ka \<inter> {x. \<bar>x $ k - c\<bar> \<le> d})) < e"
  2538           apply(subst vsum_nonzero_image_lemma[of "snd ` p" content "{}", unfolded o_def,THEN sym])
  2538           apply(subst vsum_nonzero_image_lemma[of "snd ` p" content "{}", unfolded o_def,THEN sym])
  2539           apply(rule finite_imageI p' content_empty)+ unfolding forall_in_division[OF p'']
  2539           apply(rule finite_imageI p' content_empty)+ unfolding forall_in_division[OF p'']
  2540         proof(rule,rule,rule,rule,rule,rule,rule,erule conjE) fix m n u v
  2540         proof(rule,rule,rule,rule,rule,rule,rule,erule conjE) fix m n u v
  2541           assume as:"{m..n} \<in> snd ` p" "{u..v} \<in> snd ` p" "{m..n} \<noteq> {u..v}"  "{m..n} \<inter> {x. \<bar>x $ k - c\<bar> \<le> d} = {u..v} \<inter> {x. \<bar>x $ k - c\<bar> \<le> d}"
  2541           assume as:"{m..n} \<in> snd ` p" "{u..v} \<in> snd ` p" "{m..n} \<noteq> {u..v}"  "{m..n} \<inter> {x. \<bar>x $ k - c\<bar> \<le> d} = {u..v} \<inter> {x. \<bar>x $ k - c\<bar> \<le> d}"
  4721 proof- have *:"\<And>x y. (\<forall>e::real. 0 < e \<longrightarrow> x < y + e) \<longrightarrow> x \<le> y" apply(safe,rule ccontr)
  4721 proof- have *:"\<And>x y. (\<forall>e::real. 0 < e \<longrightarrow> x < y + e) \<longrightarrow> x \<le> y" apply(safe,rule ccontr)
  4722     apply(erule_tac x="x - y" in allE) by auto
  4722     apply(erule_tac x="x - y" in allE) by auto
  4723   have "\<And>e sg dsa dia ig. norm(sg) \<le> dsa \<longrightarrow> abs(dsa - dia) < e / 2 \<longrightarrow> norm(sg - ig) < e / 2
  4723   have "\<And>e sg dsa dia ig. norm(sg) \<le> dsa \<longrightarrow> abs(dsa - dia) < e / 2 \<longrightarrow> norm(sg - ig) < e / 2
  4724     \<longrightarrow> norm(ig) < dia + e" 
  4724     \<longrightarrow> norm(ig) < dia + e" 
  4725   proof safe case goal1 show ?case apply(rule le_less_trans[OF norm_triangle_sub[of ig sg]])
  4725   proof safe case goal1 show ?case apply(rule le_less_trans[OF norm_triangle_sub[of ig sg]])
  4726       apply(subst real_sum_of_halves[of e,THEN sym]) unfolding class_semiring.add_a
  4726       apply(subst real_sum_of_halves[of e,THEN sym]) unfolding normalizing.add_a
  4727       apply(rule add_le_less_mono) defer apply(subst norm_minus_commute,rule goal1)
  4727       apply(rule add_le_less_mono) defer apply(subst norm_minus_commute,rule goal1)
  4728       apply(rule order_trans[OF goal1(1)]) using goal1(2) by arith
  4728       apply(rule order_trans[OF goal1(1)]) using goal1(2) by arith
  4729   qed note norm=this[rule_format]
  4729   qed note norm=this[rule_format]
  4730   have lem:"\<And>f::real^'n \<Rightarrow> 'a. \<And> g a b. f integrable_on {a..b} \<Longrightarrow> g integrable_on {a..b} \<Longrightarrow>
  4730   have lem:"\<And>f::real^'n \<Rightarrow> 'a. \<And> g a b. f integrable_on {a..b} \<Longrightarrow> g integrable_on {a..b} \<Longrightarrow>
  4731     \<forall>x\<in>{a..b}. norm(f x) \<le> (g x) \<Longrightarrow> norm(integral({a..b}) f) \<le> (integral({a..b}) g)"
  4731     \<forall>x\<in>{a..b}. norm(f x) \<le> (g x) \<Longrightarrow> norm(integral({a..b}) f) \<le> (integral({a..b}) g)"