src/HOL/Analysis/Complex_Transcendental.thy
changeset 73932 fd21b4a93043
parent 72301 c5d1a01d2d6c
child 73933 fa92bc604c59
equal deleted inserted replaced
73866:66bff50bc5f1 73932:fd21b4a93043
  1144 
  1144 
  1145 lemma Re_Im_le_cmod: "Im w * sin \<phi> + Re w * cos \<phi> \<le> cmod w"
  1145 lemma Re_Im_le_cmod: "Im w * sin \<phi> + Re w * cos \<phi> \<le> cmod w"
  1146 proof (cases w rule: complex_split_polar)
  1146 proof (cases w rule: complex_split_polar)
  1147   case (1 r a) with sin_cos_le1 [of a \<phi>] show ?thesis
  1147   case (1 r a) with sin_cos_le1 [of a \<phi>] show ?thesis
  1148     apply (simp add: norm_mult cmod_unit_one)
  1148     apply (simp add: norm_mult cmod_unit_one)
  1149     by (metis (no_types, hide_lams) abs_le_D1 distrib_left mult.commute mult.left_commute mult_left_le)
  1149     by (metis (no_types, opaque_lifting) abs_le_D1 distrib_left mult.commute mult.left_commute mult_left_le)
  1150 qed
  1150 qed
  1151 
  1151 
  1152 subsection\<^marker>\<open>tag unimportant\<close>\<open>Analytic properties of tangent function\<close>
  1152 subsection\<^marker>\<open>tag unimportant\<close>\<open>Analytic properties of tangent function\<close>
  1153 
  1153 
  1154 lemma cnj_tan: "cnj(tan z) = tan(cnj z)"
  1154 lemma cnj_tan: "cnj(tan z) = tan(cnj z)"
  1331     have "0 \<notin> V"
  1331     have "0 \<notin> V"
  1332       by (meson exp_not_eq_zero hom homeomorphism_def)
  1332       by (meson exp_not_eq_zero hom homeomorphism_def)
  1333     then have "\<And>y. y \<in> V \<Longrightarrow> g' y = inv ((*) y)"
  1333     then have "\<And>y. y \<in> V \<Longrightarrow> g' y = inv ((*) y)"
  1334       by (metis exp_Ln g' g_eq_Ln)
  1334       by (metis exp_Ln g' g_eq_Ln)
  1335     then have g': "g' z = (\<lambda>x. x/z)"
  1335     then have g': "g' z = (\<lambda>x. x/z)"
  1336       by (metis (no_types, hide_lams) bij \<open>z \<in> V\<close> bij_inv_eq_iff exp_Ln g_eq_Ln nonzero_mult_div_cancel_left znz)
  1336       by (metis (no_types, opaque_lifting) bij \<open>z \<in> V\<close> bij_inv_eq_iff exp_Ln g_eq_Ln nonzero_mult_div_cancel_left znz)
  1337     show "(g has_derivative (*) (inverse z)) (at z)"
  1337     show "(g has_derivative (*) (inverse z)) (at z)"
  1338       using g [OF \<open>z \<in> V\<close>] g'
  1338       using g [OF \<open>z \<in> V\<close>] g'
  1339       by (simp add: \<open>z \<in> V\<close> field_class.field_divide_inverse has_derivative_imp_has_field_derivative has_field_derivative_imp_has_derivative)
  1339       by (simp add: \<open>z \<in> V\<close> field_class.field_divide_inverse has_derivative_imp_has_field_derivative has_field_derivative_imp_has_derivative)
  1340   qed (auto simp: \<open>z \<in> V\<close> \<open>open V\<close>)
  1340   qed (auto simp: \<open>z \<in> V\<close> \<open>open V\<close>)
  1341 qed
  1341 qed
  3984               (of_nat k + of_nat n * of_int z) * (\<i> * (of_real pi * 2)))"
  3984               (of_nat k + of_nat n * of_int z) * (\<i> * (of_real pi * 2)))"
  3985       by (simp add: algebra_simps)
  3985       by (simp add: algebra_simps)
  3986     also have "... \<longleftrightarrow> (\<exists>z::int. of_nat j = of_nat k + of_nat n * (of_int z :: complex))"
  3986     also have "... \<longleftrightarrow> (\<exists>z::int. of_nat j = of_nat k + of_nat n * (of_int z :: complex))"
  3987       by simp
  3987       by simp
  3988     also have "... \<longleftrightarrow> (\<exists>z::int. of_nat j = of_nat k + of_nat n * z)"
  3988     also have "... \<longleftrightarrow> (\<exists>z::int. of_nat j = of_nat k + of_nat n * z)"
  3989       by (metis (mono_tags, hide_lams) of_int_add of_int_eq_iff of_int_mult of_int_of_nat_eq)
  3989       by (metis (mono_tags, opaque_lifting) of_int_add of_int_eq_iff of_int_mult of_int_of_nat_eq)
  3990     also have "... \<longleftrightarrow> int j mod int n = int k mod int n"
  3990     also have "... \<longleftrightarrow> int j mod int n = int k mod int n"
  3991       by (auto simp: mod_eq_dvd_iff dvd_def algebra_simps)
  3991       by (auto simp: mod_eq_dvd_iff dvd_def algebra_simps)
  3992     also have "... \<longleftrightarrow> j mod n = k mod n"
  3992     also have "... \<longleftrightarrow> j mod n = k mod n"
  3993       by (metis of_nat_eq_iff zmod_int)
  3993       by (metis of_nat_eq_iff zmod_int)
  3994     finally have "(\<exists>z. \<i> * (of_nat j * (of_real pi * 2)) =
  3994     finally have "(\<exists>z. \<i> * (of_nat j * (of_real pi * 2)) =