39 assume "0 \<in> interior {z. Im z * Re b \<le> Im b * Re z}" |
39 assume "0 \<in> interior {z. Im z * Re b \<le> Im b * Re z}" |
40 then obtain e where "e>0" and e: "ball 0 e \<subseteq> {z. Im z * Re b \<le> Im b * Re z}" |
40 then obtain e where "e>0" and e: "ball 0 e \<subseteq> {z. Im z * Re b \<le> Im b * Re z}" |
41 by (meson mem_interior) |
41 by (meson mem_interior) |
42 define z where "z \<equiv> - sgn (Im b) * (e/3) + sgn (Re b) * (e/3) * \<i>" |
42 define z where "z \<equiv> - sgn (Im b) * (e/3) + sgn (Re b) * (e/3) * \<i>" |
43 have "z \<in> ball 0 e" |
43 have "z \<in> ball 0 e" |
44 using `e>0` |
44 using \<open>e>0\<close> |
45 apply (simp add: z_def dist_norm) |
45 apply (simp add: z_def dist_norm) |
46 apply (rule le_less_trans [OF norm_triangle_ineq4]) |
46 apply (rule le_less_trans [OF norm_triangle_ineq4]) |
47 apply (simp add: norm_mult abs_sgn_eq) |
47 apply (simp add: norm_mult abs_sgn_eq) |
48 done |
48 done |
49 then have "z \<in> {z. Im z * Re b \<le> Im b * Re z}" |
49 then have "z \<in> {z. Im z * Re b \<le> Im b * Re z}" |
50 using e by blast |
50 using e by blast |
51 then show False |
51 then show False |
52 using `e>0` `b \<noteq> 0` |
52 using \<open>e>0\<close> \<open>b \<noteq> 0\<close> |
53 apply (simp add: z_def dist_norm sgn_if less_eq_real_def mult_less_0_iff complex.expand split: if_split_asm) |
53 apply (simp add: z_def dist_norm sgn_if less_eq_real_def mult_less_0_iff complex.expand split: if_split_asm) |
54 apply (auto simp: algebra_simps) |
54 apply (auto simp: algebra_simps) |
55 apply (meson less_asym less_trans mult_pos_pos neg_less_0_iff_less) |
55 apply (meson less_asym less_trans mult_pos_pos neg_less_0_iff_less) |
56 by (metis less_asym mult_pos_pos neg_less_0_iff_less) |
56 by (metis less_asym mult_pos_pos neg_less_0_iff_less) |
57 qed |
57 qed |