equal
deleted
inserted
replaced
1261 |
1261 |
1262 |
1262 |
1263 |
1263 |
1264 subsection{*Complex Powers*} |
1264 subsection{*Complex Powers*} |
1265 |
1265 |
1266 lemma powr_0 [simp]: "0 powr z = 0" |
|
1267 by (simp add: powr_def) |
|
1268 |
|
1269 lemma powr_to_1 [simp]: "z powr 1 = (z::complex)" |
1266 lemma powr_to_1 [simp]: "z powr 1 = (z::complex)" |
1270 by (simp add: powr_def) |
1267 by (simp add: powr_def) |
1271 |
1268 |
1272 lemma powr_nat: |
1269 lemma powr_nat: |
1273 fixes n::nat and z::complex shows "z powr n = (if z = 0 then 0 else z^n)" |
1270 fixes n::nat and z::complex shows "z powr n = (if z = 0 then 0 else z^n)" |
1524 shows Re_Arctan_bounds: "abs(Re(Arctan z)) < pi/2" |
1521 shows Re_Arctan_bounds: "abs(Re(Arctan z)) < pi/2" |
1525 and has_field_derivative_Arctan: "(Arctan has_field_derivative inverse(1 + z\<^sup>2)) (at z)" |
1522 and has_field_derivative_Arctan: "(Arctan has_field_derivative inverse(1 + z\<^sup>2)) (at z)" |
1526 proof - |
1523 proof - |
1527 have nz0: "1 + \<i>*z \<noteq> 0" |
1524 have nz0: "1 + \<i>*z \<noteq> 0" |
1528 using assms |
1525 using assms |
1529 by (metis abs_one complex_i_mult_minus diff_0_right diff_minus_eq_add ii.simps(1) ii.simps(2) |
1526 by (metis abs_one complex_i_mult_minus diff_0_right diff_minus_eq_add ii.simps(1) ii.simps(2) |
1530 less_irrefl minus_diff_eq mult.right_neutral right_minus_eq) |
1527 less_irrefl minus_diff_eq mult.right_neutral right_minus_eq) |
1531 have "z \<noteq> -\<i>" using assms |
1528 have "z \<noteq> -\<i>" using assms |
1532 by auto |
1529 by auto |
1533 then have zz: "1 + z * z \<noteq> 0" |
1530 then have zz: "1 + z * z \<noteq> 0" |
1534 by (metis abs_one assms i_squared ii.simps less_irrefl minus_unique square_eq_iff) |
1531 by (metis abs_one assms i_squared ii.simps less_irrefl minus_unique square_eq_iff) |
1769 lemma isCont_Arcsin' [simp]: |
1766 lemma isCont_Arcsin' [simp]: |
1770 shows "isCont f z \<Longrightarrow> (Im (f z) = 0 \<Longrightarrow> \<bar>Re (f z)\<bar> < 1) \<Longrightarrow> isCont (\<lambda>x. Arcsin (f x)) z" |
1767 shows "isCont f z \<Longrightarrow> (Im (f z) = 0 \<Longrightarrow> \<bar>Re (f z)\<bar> < 1) \<Longrightarrow> isCont (\<lambda>x. Arcsin (f x)) z" |
1771 by (blast intro: isCont_o2 [OF _ isCont_Arcsin]) |
1768 by (blast intro: isCont_o2 [OF _ isCont_Arcsin]) |
1772 |
1769 |
1773 lemma sin_Arcsin [simp]: "sin(Arcsin z) = z" |
1770 lemma sin_Arcsin [simp]: "sin(Arcsin z) = z" |
1774 proof - |
1771 proof - |
1775 have "\<i>*z*2 + csqrt (1 - z\<^sup>2)*2 = 0 \<longleftrightarrow> (\<i>*z)*2 + csqrt (1 - z\<^sup>2)*2 = 0" |
1772 have "\<i>*z*2 + csqrt (1 - z\<^sup>2)*2 = 0 \<longleftrightarrow> (\<i>*z)*2 + csqrt (1 - z\<^sup>2)*2 = 0" |
1776 by (simp add: algebra_simps) --{*Cancelling a factor of 2*} |
1773 by (simp add: algebra_simps) --{*Cancelling a factor of 2*} |
1777 moreover have "... \<longleftrightarrow> (\<i>*z) + csqrt (1 - z\<^sup>2) = 0" |
1774 moreover have "... \<longleftrightarrow> (\<i>*z) + csqrt (1 - z\<^sup>2) = 0" |
1778 by (metis Arcsin_body_lemma distrib_right no_zero_divisors zero_neq_numeral) |
1775 by (metis Arcsin_body_lemma distrib_right no_zero_divisors zero_neq_numeral) |
1779 ultimately show ?thesis |
1776 ultimately show ?thesis |
1901 assumes "(Im z = 0 \<Longrightarrow> \<bar>Re z\<bar> < 1)" "Im (z + \<i> * csqrt (1 - z\<^sup>2)) = 0" |
1898 assumes "(Im z = 0 \<Longrightarrow> \<bar>Re z\<bar> < 1)" "Im (z + \<i> * csqrt (1 - z\<^sup>2)) = 0" |
1902 shows "0 < Re (z + \<i> * csqrt (1 - z\<^sup>2))" |
1899 shows "0 < Re (z + \<i> * csqrt (1 - z\<^sup>2))" |
1903 proof (cases "Im z = 0") |
1900 proof (cases "Im z = 0") |
1904 case True |
1901 case True |
1905 then show ?thesis |
1902 then show ?thesis |
1906 using assms |
1903 using assms |
1907 by (fastforce simp add: cmod_def Re_power2 Im_power2 algebra_simps abs_square_less_1 [symmetric]) |
1904 by (fastforce simp add: cmod_def Re_power2 Im_power2 algebra_simps abs_square_less_1 [symmetric]) |
1908 next |
1905 next |
1909 case False |
1906 case False |
1910 have Imz: "Im z = - sqrt ((1 + ((Im z)\<^sup>2 + cmod (1 - z\<^sup>2)) - (Re z)\<^sup>2) / 2)" |
1907 have Imz: "Im z = - sqrt ((1 + ((Im z)\<^sup>2 + cmod (1 - z\<^sup>2)) - (Re z)\<^sup>2) / 2)" |
1911 using assms abs_Re_le_cmod [of "1-z\<^sup>2"] |
1908 using assms abs_Re_le_cmod [of "1-z\<^sup>2"] |