src/HOL/Multivariate_Analysis/Complex_Transcendental.thy
changeset 63092 a949b2a5f51d
parent 63040 eb4ddd18d635
child 63295 52792bb9126e
equal deleted inserted replaced
63091:54f16a0a3069 63092:a949b2a5f51d
   982 
   982 
   983 lemma Ln_unique: "exp(z) = w \<Longrightarrow> -pi < Im(z) \<Longrightarrow> Im(z) \<le> pi \<Longrightarrow> Ln w = z"
   983 lemma Ln_unique: "exp(z) = w \<Longrightarrow> -pi < Im(z) \<Longrightarrow> Im(z) \<le> pi \<Longrightarrow> Ln w = z"
   984   using Ln_exp by blast
   984   using Ln_exp by blast
   985 
   985 
   986 lemma Re_Ln [simp]: "z \<noteq> 0 \<Longrightarrow> Re(Ln z) = ln(norm z)"
   986 lemma Re_Ln [simp]: "z \<noteq> 0 \<Longrightarrow> Re(Ln z) = ln(norm z)"
   987   by (metis exp_Ln assms ln_exp norm_exp_eq_Re)
   987   by (metis exp_Ln ln_exp norm_exp_eq_Re)
   988 
   988 
   989 corollary ln_cmod_le:
   989 corollary ln_cmod_le:
   990   assumes z: "z \<noteq> 0"
   990   assumes z: "z \<noteq> 0"
   991     shows "ln (cmod z) \<le> cmod (Ln z)"
   991     shows "ln (cmod z) \<le> cmod (Ln z)"
   992   using norm_exp [of "Ln z", simplified exp_Ln [OF z]]
   992   using norm_exp [of "Ln z", simplified exp_Ln [OF z]]
  1606 proof (cases "x = 0")
  1606 proof (cases "x = 0")
  1607   assume x: "x \<noteq> 0"
  1607   assume x: "x \<noteq> 0"
  1608   hence "(-x) powr a = exp (a * ln (-of_real x))" by (simp add: powr_def)
  1608   hence "(-x) powr a = exp (a * ln (-of_real x))" by (simp add: powr_def)
  1609   also from x have "ln (-of_real x) = Ln (of_real x) + of_real (sgn x) * pi * \<i>"
  1609   also from x have "ln (-of_real x) = Ln (of_real x) + of_real (sgn x) * pi * \<i>"
  1610     by (simp add: Ln_minus Ln_of_real)
  1610     by (simp add: Ln_minus Ln_of_real)
  1611   also from x assms have "exp (a * ...) = cis pi powr (of_real (sgn x) * a) * of_real x powr a"
  1611   also from x have "exp (a * ...) = cis pi powr (of_real (sgn x) * a) * of_real x powr a"
  1612     by (simp add: powr_def exp_add algebra_simps Ln_of_real cis_conv_exp)
  1612     by (simp add: powr_def exp_add algebra_simps Ln_of_real cis_conv_exp)
  1613   also note cis_pi
  1613   also note cis_pi
  1614   finally show ?thesis by simp
  1614   finally show ?thesis by simp
  1615 qed simp_all
  1615 qed simp_all
  1616 
  1616 
  1619   shows "z \<notin> \<real>\<^sub>\<le>\<^sub>0 \<Longrightarrow> ((\<lambda>z. z powr s) has_field_derivative (s * z powr (s - 1))) (at z)"
  1619   shows "z \<notin> \<real>\<^sub>\<le>\<^sub>0 \<Longrightarrow> ((\<lambda>z. z powr s) has_field_derivative (s * z powr (s - 1))) (at z)"
  1620   apply (cases "z=0", auto)
  1620   apply (cases "z=0", auto)
  1621   apply (simp add: powr_def)
  1621   apply (simp add: powr_def)
  1622   apply (rule DERIV_transform_at [where d = "norm z" and f = "\<lambda>z. exp (s * Ln z)"])
  1622   apply (rule DERIV_transform_at [where d = "norm z" and f = "\<lambda>z. exp (s * Ln z)"])
  1623   apply (auto simp: dist_complex_def)
  1623   apply (auto simp: dist_complex_def)
  1624   apply (intro derivative_eq_intros | simp add: assms)+
  1624   apply (intro derivative_eq_intros | simp)+
  1625   apply (simp add: field_simps exp_diff)
  1625   apply (simp add: field_simps exp_diff)
  1626   done
  1626   done
  1627 
  1627 
  1628 declare has_field_derivative_powr[THEN DERIV_chain2, derivative_intros]
  1628 declare has_field_derivative_powr[THEN DERIV_chain2, derivative_intros]
  1629 
  1629 
  1630 
  1630 
  1631 lemma has_field_derivative_powr_right:
  1631 lemma has_field_derivative_powr_right:
  1632     "w \<noteq> 0 \<Longrightarrow> ((\<lambda>z. w powr z) has_field_derivative Ln w * w powr z) (at z)"
  1632     "w \<noteq> 0 \<Longrightarrow> ((\<lambda>z. w powr z) has_field_derivative Ln w * w powr z) (at z)"
  1633   apply (simp add: powr_def)
  1633   apply (simp add: powr_def)
  1634   apply (intro derivative_eq_intros | simp add: assms)+
  1634   apply (intro derivative_eq_intros | simp)+
  1635   done
  1635   done
  1636 
  1636 
  1637 lemma field_differentiable_powr_right:
  1637 lemma field_differentiable_powr_right:
  1638   fixes w::complex
  1638   fixes w::complex
  1639   shows
  1639   shows
  1770     apply (erule less_le_trans, auto)
  1770     apply (erule less_le_trans, auto)
  1771     done
  1771     done
  1772 qed
  1772 qed
  1773 
  1773 
  1774 lemma lim_1_over_ln: "((\<lambda>n. 1 / ln(real_of_nat n)) \<longlongrightarrow> 0) sequentially"
  1774 lemma lim_1_over_ln: "((\<lambda>n. 1 / ln(real_of_nat n)) \<longlongrightarrow> 0) sequentially"
  1775   using lim_1_over_Ln [THEN filterlim_sequentially_Suc [THEN iffD2]] assms
  1775   using lim_1_over_Ln [THEN filterlim_sequentially_Suc [THEN iffD2]]
  1776   apply (subst filterlim_sequentially_Suc [symmetric])
  1776   apply (subst filterlim_sequentially_Suc [symmetric])
  1777   apply (simp add: lim_sequentially dist_norm)
  1777   apply (simp add: lim_sequentially dist_norm)
  1778   apply (simp add: Ln_Reals_eq norm_powr_real_powr norm_divide)
  1778   apply (simp add: Ln_Reals_eq norm_powr_real_powr norm_divide)
  1779   done
  1779   done
  1780 
  1780