src/HOL/Analysis/Cauchy_Integral_Theorem.thy
changeset 69597 ff784d5a5bfb
parent 69530 fc0da2166cda
child 69661 a03a63b81f44
equal deleted inserted replaced
69596:c8a2755bf220 69597:ff784d5a5bfb
  3111 definition linked_paths :: "bool \<Rightarrow> (real \<Rightarrow> 'a) \<Rightarrow> (real \<Rightarrow> 'a::topological_space) \<Rightarrow> bool"
  3111 definition linked_paths :: "bool \<Rightarrow> (real \<Rightarrow> 'a) \<Rightarrow> (real \<Rightarrow> 'a::topological_space) \<Rightarrow> bool"
  3112   where "linked_paths atends g h ==
  3112   where "linked_paths atends g h ==
  3113         (if atends then pathstart h = pathstart g \<and> pathfinish h = pathfinish g
  3113         (if atends then pathstart h = pathstart g \<and> pathfinish h = pathfinish g
  3114                    else pathfinish g = pathstart g \<and> pathfinish h = pathstart h)"
  3114                    else pathfinish g = pathstart g \<and> pathfinish h = pathstart h)"
  3115 
  3115 
  3116 text\<open>This formulation covers two cases: @{term g} and @{term h} share their
  3116 text\<open>This formulation covers two cases: \<^term>\<open>g\<close> and \<^term>\<open>h\<close> share their
  3117       start and end points; @{term g} and @{term h} both loop upon themselves.\<close>
  3117       start and end points; \<^term>\<open>g\<close> and \<^term>\<open>h\<close> both loop upon themselves.\<close>
  3118 lemma contour_integral_nearby:
  3118 lemma contour_integral_nearby:
  3119   assumes os: "open S" and p: "path p" "path_image p \<subseteq> S"
  3119   assumes os: "open S" and p: "path p" "path_image p \<subseteq> S"
  3120   shows "\<exists>d. 0 < d \<and>
  3120   shows "\<exists>d. 0 < d \<and>
  3121             (\<forall>g h. valid_path g \<and> valid_path h \<and>
  3121             (\<forall>g h. valid_path g \<and> valid_path h \<and>
  3122                   (\<forall>t \<in> {0..1}. norm(g t - p t) < d \<and> norm(h t - p t) < d) \<and>
  3122                   (\<forall>t \<in> {0..1}. norm(g t - p t) < d \<and> norm(h t - p t) < d) \<and>
  6358 theorem holomorphic_power_series:
  6358 theorem holomorphic_power_series:
  6359   assumes holf: "f holomorphic_on ball z r"
  6359   assumes holf: "f holomorphic_on ball z r"
  6360       and w: "w \<in> ball z r"
  6360       and w: "w \<in> ball z r"
  6361     shows "((\<lambda>n. (deriv ^^ n) f z / (fact n) * (w - z)^n) sums f w)"
  6361     shows "((\<lambda>n. (deriv ^^ n) f z / (fact n) * (w - z)^n) sums f w)"
  6362 proof -
  6362 proof -
  6363   \<comment> \<open>Replacing @{term r} and the original (weak) premises with stronger ones\<close>
  6363   \<comment> \<open>Replacing \<^term>\<open>r\<close> and the original (weak) premises with stronger ones\<close>
  6364   obtain r where "r > 0" and holfc: "f holomorphic_on cball z r" and w: "w \<in> ball z r"
  6364   obtain r where "r > 0" and holfc: "f holomorphic_on cball z r" and w: "w \<in> ball z r"
  6365   proof
  6365   proof
  6366     have "cball z ((r + dist w z) / 2) \<subseteq> ball z r"
  6366     have "cball z ((r + dist w z) / 2) \<subseteq> ball z r"
  6367       using w by (simp add: dist_commute field_sum_of_halves subset_eq)
  6367       using w by (simp add: dist_commute field_sum_of_halves subset_eq)
  6368     then show "f holomorphic_on cball z ((r + dist w z) / 2)"
  6368     then show "f holomorphic_on cball z ((r + dist w z) / 2)"
  7272     show ?thesis
  7272     show ?thesis
  7273       by (rule continuous_onI) (use False in \<open>auto intro: *\<close>)
  7273       by (rule continuous_onI) (use False in \<open>auto intro: *\<close>)
  7274   qed
  7274   qed
  7275 qed
  7275 qed
  7276 
  7276 
  7277 text\<open>This version has @{term"polynomial_function \<gamma>"} as an additional assumption.\<close>
  7277 text\<open>This version has \<^term>\<open>polynomial_function \<gamma>\<close> as an additional assumption.\<close>
  7278 lemma Cauchy_integral_formula_global_weak:
  7278 lemma Cauchy_integral_formula_global_weak:
  7279   assumes "open U" and holf: "f holomorphic_on U"
  7279   assumes "open U" and holf: "f holomorphic_on U"
  7280         and z: "z \<in> U" and \<gamma>: "polynomial_function \<gamma>"
  7280         and z: "z \<in> U" and \<gamma>: "polynomial_function \<gamma>"
  7281         and pasz: "path_image \<gamma> \<subseteq> U - {z}" and loop: "pathfinish \<gamma> = pathstart \<gamma>"
  7281         and pasz: "path_image \<gamma> \<subseteq> U - {z}" and loop: "pathfinish \<gamma> = pathstart \<gamma>"
  7282         and zero: "\<And>w. w \<notin> U \<Longrightarrow> winding_number \<gamma> w = 0"
  7282         and zero: "\<And>w. w \<notin> U \<Longrightarrow> winding_number \<gamma> w = 0"