src/HOL/Analysis/Complex_Analysis_Basics.thy
changeset 71001 3e374c65f96b
parent 70817 dd675800469d
child 71029 934e0044e94b
equal deleted inserted replaced
71000:98308c6582ed 71001:3e374c65f96b
     3 *)
     3 *)
     4 
     4 
     5 section \<open>Complex Analysis Basics\<close>
     5 section \<open>Complex Analysis Basics\<close>
     6 
     6 
     7 theory Complex_Analysis_Basics
     7 theory Complex_Analysis_Basics
     8   imports Brouwer_Fixpoint "HOL-Library.Nonpos_Ints"
     8   imports Derivative "HOL-Library.Nonpos_Ints"
     9 begin
     9 begin
    10 
    10 
    11 (* TODO FIXME: A lot of the things in here have nothing to do with complex analysis *)
    11 (* TODO FIXME: A lot of the things in here have nothing to do with complex analysis *)
    12 
    12 
    13 subsection\<^marker>\<open>tag unimportant\<close>\<open>General lemmas\<close>
    13 subsection\<^marker>\<open>tag unimportant\<close>\<open>General lemmas\<close>
   877         \<Longrightarrow> DERIV g y :> inverse (f')"
   877         \<Longrightarrow> DERIV g y :> inverse (f')"
   878   unfolding has_field_derivative_def
   878   unfolding has_field_derivative_def
   879   apply (rule has_derivative_inverse_basic)
   879   apply (rule has_derivative_inverse_basic)
   880   apply (auto simp:  bounded_linear_mult_right)
   880   apply (auto simp:  bounded_linear_mult_right)
   881   done
   881   done
   882 
       
   883 lemma has_field_derivative_inverse_strong:
       
   884   fixes f :: "'a::{euclidean_space,real_normed_field} \<Rightarrow> 'a"
       
   885   shows "DERIV f x :> f' \<Longrightarrow>
       
   886          f' \<noteq> 0 \<Longrightarrow>
       
   887          open S \<Longrightarrow>
       
   888          x \<in> S \<Longrightarrow>
       
   889          continuous_on S f \<Longrightarrow>
       
   890          (\<And>z. z \<in> S \<Longrightarrow> g (f z) = z)
       
   891          \<Longrightarrow> DERIV g (f x) :> inverse (f')"
       
   892   unfolding has_field_derivative_def
       
   893   apply (rule has_derivative_inverse_strong [of S x f g ])
       
   894   by auto
       
   895 
       
   896 lemma has_field_derivative_inverse_strong_x:
       
   897   fixes f :: "'a::{euclidean_space,real_normed_field} \<Rightarrow> 'a"
       
   898   shows  "DERIV f (g y) :> f' \<Longrightarrow>
       
   899           f' \<noteq> 0 \<Longrightarrow>
       
   900           open S \<Longrightarrow>
       
   901           continuous_on S f \<Longrightarrow>
       
   902           g y \<in> S \<Longrightarrow> f(g y) = y \<Longrightarrow>
       
   903           (\<And>z. z \<in> S \<Longrightarrow> g (f z) = z)
       
   904           \<Longrightarrow> DERIV g y :> inverse (f')"
       
   905   unfolding has_field_derivative_def
       
   906   apply (rule has_derivative_inverse_strong_x [of S g y f])
       
   907   by auto
       
   908 
   882 
   909 subsection\<^marker>\<open>tag unimportant\<close> \<open>Taylor on Complex Numbers\<close>
   883 subsection\<^marker>\<open>tag unimportant\<close> \<open>Taylor on Complex Numbers\<close>
   910 
   884 
   911 lemma sum_Suc_reindex:
   885 lemma sum_Suc_reindex:
   912   fixes f :: "nat \<Rightarrow> 'a::ab_group_add"
   886   fixes f :: "nat \<Rightarrow> 'a::ab_group_add"