equal
deleted
inserted
replaced
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)) = |