equal
deleted
inserted
replaced
232 |
232 |
233 lemma metric_bound_lemma: "cmod (x - y) \<le> \<bar>Re x - Re y\<bar> + \<bar>Im x - Im y\<bar>" |
233 lemma metric_bound_lemma: "cmod (x - y) \<le> \<bar>Re x - Re y\<bar> + \<bar>Im x - Im y\<bar>" |
234 using real_sqrt_sum_squares_triangle_ineq[of "Re x - Re y" 0 0 "Im x - Im y"] |
234 using real_sqrt_sum_squares_triangle_ineq[of "Re x - Re y" 0 0 "Im x - Im y"] |
235 unfolding cmod_def by simp |
235 unfolding cmod_def by simp |
236 |
236 |
237 lemma bolzano_weierstrass_complex_disc: |
237 lemma Bolzano_Weierstrass_complex_disc: |
238 assumes r: "\<forall>n. cmod (s n) \<le> r" |
238 assumes r: "\<forall>n. cmod (s n) \<le> r" |
239 shows "\<exists>f z. strict_mono (f :: nat \<Rightarrow> nat) \<and> (\<forall>e >0. \<exists>N. \<forall>n \<ge> N. cmod (s (f n) - z) < e)" |
239 shows "\<exists>f z. strict_mono (f :: nat \<Rightarrow> nat) \<and> (\<forall>e >0. \<exists>N. \<forall>n \<ge> N. cmod (s (f n) - z) < e)" |
240 proof - |
240 proof - |
241 from seq_monosub[of "Re \<circ> s"] |
241 from seq_monosub[of "Re \<circ> s"] |
242 obtain f where f: "strict_mono f" "monoseq (\<lambda>n. Re (s (f n)))" |
242 obtain f where f: "strict_mono f" "monoseq (\<lambda>n. Re (s (f n)))" |
397 using s1[rule_format, of "?m + 1/real (Suc n)"] by simp |
397 using s1[rule_format, of "?m + 1/real (Suc n)"] by simp |
398 then have th: "\<forall>n. \<exists>z. cmod z \<le> r \<and> cmod (poly p z) < - s + 1 / real (Suc n)" .. |
398 then have th: "\<forall>n. \<exists>z. cmod z \<le> r \<and> cmod (poly p z) < - s + 1 / real (Suc n)" .. |
399 from choice[OF th] obtain g where |
399 from choice[OF th] obtain g where |
400 g: "\<forall>n. cmod (g n) \<le> r" "\<forall>n. cmod (poly p (g n)) <?m + 1 /real(Suc n)" |
400 g: "\<forall>n. cmod (g n) \<le> r" "\<forall>n. cmod (poly p (g n)) <?m + 1 /real(Suc n)" |
401 by blast |
401 by blast |
402 from bolzano_weierstrass_complex_disc[OF g(1)] |
402 from Bolzano_Weierstrass_complex_disc[OF g(1)] |
403 obtain f z where fz: "strict_mono (f :: nat \<Rightarrow> nat)" "\<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (g (f n) - z) < e" |
403 obtain f z where fz: "strict_mono (f :: nat \<Rightarrow> nat)" "\<forall>e>0. \<exists>N. \<forall>n\<ge>N. cmod (g (f n) - z) < e" |
404 by blast |
404 by blast |
405 { |
405 { |
406 fix w |
406 fix w |
407 assume wr: "cmod w \<le> r" |
407 assume wr: "cmod w \<le> r" |