332 "0 < B2" |
332 "0 < B2" |
333 "\<And>a b. ball 0 B2 \<subseteq> cbox a b \<Longrightarrow> |
333 "\<And>a b. ball 0 B2 \<subseteq> cbox a b \<Longrightarrow> |
334 \<exists>z. (?F has_integral z) (cbox a b) \<and> norm (z - k2) < norm (k1 - k2)/2" |
334 \<exists>z. (?F has_integral z) (cbox a b) \<and> norm (z - k2) < norm (k1 - k2)/2" |
335 by (rule has_integral_altD[OF assms(2) nonbox,OF e]) blast |
335 by (rule has_integral_altD[OF assms(2) nonbox,OF e]) blast |
336 obtain a b :: 'n where ab: "ball 0 B1 \<subseteq> cbox a b" "ball 0 B2 \<subseteq> cbox a b" |
336 obtain a b :: 'n where ab: "ball 0 B1 \<subseteq> cbox a b" "ball 0 B2 \<subseteq> cbox a b" |
337 by (metis Un_subset_iff bounded_Un bounded_ball bounded_subset_cbox) |
337 by (metis Un_subset_iff bounded_Un bounded_ball bounded_subset_cbox_symmetric) |
338 obtain w where w: "(?F has_integral w) (cbox a b)" "norm (w - k1) < norm (k1 - k2)/2" |
338 obtain w where w: "(?F has_integral w) (cbox a b)" "norm (w - k1) < norm (k1 - k2)/2" |
339 using B1(2)[OF ab(1)] by blast |
339 using B1(2)[OF ab(1)] by blast |
340 obtain z where z: "(?F has_integral z) (cbox a b)" "norm (z - k2) < norm (k1 - k2)/2" |
340 obtain z where z: "(?F has_integral z) (cbox a b)" "norm (z - k2) < norm (k1 - k2)/2" |
341 using B2(2)[OF ab(2)] by blast |
341 using B2(2)[OF ab(2)] by blast |
342 have "z = w" |
342 have "z = w" |
1633 \<exists>z. ((\<lambda>x. if x \<in> S then g x else 0) has_integral z) (cbox a b) \<and> |
1633 \<exists>z. ((\<lambda>x. if x \<in> S then g x else 0) has_integral z) (cbox a b) \<and> |
1634 norm (z - j) < (i \<bullet> k - j \<bullet> k) / 3" |
1634 norm (z - j) < (i \<bullet> k - j \<bullet> k) / 3" |
1635 using has_integral_altD[OF _ False ij] assms by blast |
1635 using has_integral_altD[OF _ False ij] assms by blast |
1636 have "bounded (ball 0 B1 \<union> ball (0::'a) B2)" |
1636 have "bounded (ball 0 B1 \<union> ball (0::'a) B2)" |
1637 unfolding bounded_Un by(rule conjI bounded_ball)+ |
1637 unfolding bounded_Un by(rule conjI bounded_ball)+ |
1638 from bounded_subset_cbox[OF this] |
1638 from bounded_subset_cbox_symmetric[OF this] |
1639 obtain a b::'a where ab: "ball 0 B1 \<subseteq> cbox a b" "ball 0 B2 \<subseteq> cbox a b" |
1639 obtain a b::'a where ab: "ball 0 B1 \<subseteq> cbox a b" "ball 0 B2 \<subseteq> cbox a b" |
1640 by blast+ |
1640 by (meson Un_subset_iff) |
1641 then obtain w1 w2 where int_w1: "((\<lambda>x. if x \<in> S then f x else 0) has_integral w1) (cbox a b)" |
1641 then obtain w1 w2 where int_w1: "((\<lambda>x. if x \<in> S then f x else 0) has_integral w1) (cbox a b)" |
1642 and norm_w1: "norm (w1 - i) < (i \<bullet> k - j \<bullet> k) / 3" |
1642 and norm_w1: "norm (w1 - i) < (i \<bullet> k - j \<bullet> k) / 3" |
1643 and int_w2: "((\<lambda>x. if x \<in> S then g x else 0) has_integral w2) (cbox a b)" |
1643 and int_w2: "((\<lambda>x. if x \<in> S then g x else 0) has_integral w2) (cbox a b)" |
1644 and norm_w2: "norm (w2 - j) < (i \<bullet> k - j \<bullet> k) / 3" |
1644 and norm_w2: "norm (w2 - j) < (i \<bullet> k - j \<bullet> k) / 3" |
1645 using B1 B2 by blast |
1645 using B1 B2 by blast |
6225 obtain Bg where "0 < Bg" |
6225 obtain Bg where "0 < Bg" |
6226 and Bg: "\<And>a b. ball 0 Bg \<subseteq> cbox a b \<Longrightarrow> |
6226 and Bg: "\<And>a b. ball 0 Bg \<subseteq> cbox a b \<Longrightarrow> |
6227 \<exists>z. (?g has_integral z) (cbox a b) \<and> norm (z - integral S g) < e/2" |
6227 \<exists>z. (?g has_integral z) (cbox a b) \<and> norm (z - integral S g) < e/2" |
6228 using integrable_integral [OF int_g,unfolded has_integral'[of g]] e that by blast |
6228 using integrable_integral [OF int_g,unfolded has_integral'[of g]] e that by blast |
6229 obtain a b::'n where ab: "ball 0 Bf \<union> ball 0 Bg \<subseteq> cbox a b" |
6229 obtain a b::'n where ab: "ball 0 Bf \<union> ball 0 Bg \<subseteq> cbox a b" |
6230 using ball_max_Un bounded_subset_cbox[OF bounded_ball, of _ "max Bf Bg"] by blast |
6230 using ball_max_Un by (metis bounded_ball bounded_subset_cbox_symmetric) |
6231 have "ball 0 Bf \<subseteq> cbox a b" |
6231 have "ball 0 Bf \<subseteq> cbox a b" |
6232 using ab by auto |
6232 using ab by auto |
6233 with Bf obtain z where int_fz: "(?f has_integral z) (cbox a b)" and z: "norm (z - integral S f) < e/2" |
6233 with Bf obtain z where int_fz: "(?f has_integral z) (cbox a b)" and z: "norm (z - integral S f) < e/2" |
6234 by meson |
6234 by meson |
6235 have "ball 0 Bg \<subseteq> cbox a b" |
6235 have "ball 0 Bg \<subseteq> cbox a b" |