src/HOL/Analysis/Henstock_Kurzweil_Integration.thy
changeset 68120 2f161c6910f7
parent 68073 fad29d2a17a5
child 68239 0764ee22a4d1
equal deleted inserted replaced
68097:5f3cffe16311 68120:2f161c6910f7
   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"