src/HOL/Analysis/Riemann_Mapping.thy
changeset 69064 5840724b1d71
parent 68634 db0980691ef4
child 69260 0a9688695a1b
equal deleted inserted replaced
69045:8c240fdeffcb 69064:5840724b1d71
   136       using \<open>open S\<close> \<open>0 \<in> S\<close> openE by auto
   136       using \<open>open S\<close> \<open>0 \<in> S\<close> openE by auto
   137     have bdd: "bdd_above ((\<lambda>h. norm(deriv h 0)) ` F)"
   137     have bdd: "bdd_above ((\<lambda>h. norm(deriv h 0)) ` F)"
   138     proof (intro bdd_aboveI exI ballI, clarify)
   138     proof (intro bdd_aboveI exI ballI, clarify)
   139       show "norm (deriv f 0) \<le> 1 / r" if "f \<in> F" for f
   139       show "norm (deriv f 0) \<le> 1 / r" if "f \<in> F" for f
   140       proof -
   140       proof -
   141         have r01: "( * ) (complex_of_real r) ` ball 0 1 \<subseteq> S"
   141         have r01: "(*) (complex_of_real r) ` ball 0 1 \<subseteq> S"
   142           using that \<open>r > 0\<close> by (auto simp: norm_mult r [THEN subsetD])
   142           using that \<open>r > 0\<close> by (auto simp: norm_mult r [THEN subsetD])
   143         then have "f holomorphic_on ( * ) (complex_of_real r) ` ball 0 1"
   143         then have "f holomorphic_on (*) (complex_of_real r) ` ball 0 1"
   144           using holomorphic_on_subset [OF holF] by (simp add: that)
   144           using holomorphic_on_subset [OF holF] by (simp add: that)
   145         then have holf: "f \<circ> (\<lambda>z. (r * z)) holomorphic_on (ball 0 1)"
   145         then have holf: "f \<circ> (\<lambda>z. (r * z)) holomorphic_on (ball 0 1)"
   146           by (intro holomorphic_intros holomorphic_on_compose)
   146           by (intro holomorphic_intros holomorphic_on_compose)
   147         have f0: "(f \<circ> ( * ) (complex_of_real r)) 0 = 0"
   147         have f0: "(f \<circ> (*) (complex_of_real r)) 0 = 0"
   148           using F_def that by auto
   148           using F_def that by auto
   149         have "f ` S \<subseteq> ball 0 1"
   149         have "f ` S \<subseteq> ball 0 1"
   150           using F_def that by blast
   150           using F_def that by blast
   151         with r01 have fr1: "\<And>z. norm z < 1 \<Longrightarrow> norm ((f \<circ> ( * )(of_real r))z) < 1"
   151         with r01 have fr1: "\<And>z. norm z < 1 \<Longrightarrow> norm ((f \<circ> (*)(of_real r))z) < 1"
   152           by force
   152           by force
   153         have *: "((\<lambda>w. f (r * w)) has_field_derivative deriv f (r * z) * r) (at z)"
   153         have *: "((\<lambda>w. f (r * w)) has_field_derivative deriv f (r * z) * r) (at z)"
   154           if "z \<in> ball 0 1" for z::complex
   154           if "z \<in> ball 0 1" for z::complex
   155         proof (rule DERIV_chain' [where g=f])
   155         proof (rule DERIV_chain' [where g=f])
   156           show "(f has_field_derivative deriv f (of_real r * z)) (at (of_real r * z))"
   156           show "(f has_field_derivative deriv f (of_real r * z)) (at (of_real r * z))"
   160         qed simp
   160         qed simp
   161         have df0: "((\<lambda>w. f (r * w)) has_field_derivative deriv f 0 * r) (at 0)"
   161         have df0: "((\<lambda>w. f (r * w)) has_field_derivative deriv f 0 * r) (at 0)"
   162           using * [of 0] by simp
   162           using * [of 0] by simp
   163         have deq: "deriv (\<lambda>x. f (complex_of_real r * x)) 0 = deriv f 0 * complex_of_real r"
   163         have deq: "deriv (\<lambda>x. f (complex_of_real r * x)) 0 = deriv f 0 * complex_of_real r"
   164           using DERIV_imp_deriv df0 by blast
   164           using DERIV_imp_deriv df0 by blast
   165         have "norm (deriv (f \<circ> ( * ) (complex_of_real r)) 0) \<le> 1"
   165         have "norm (deriv (f \<circ> (*) (complex_of_real r)) 0) \<le> 1"
   166           by (auto intro: Schwarz_Lemma [OF holf f0 fr1, of 0])
   166           by (auto intro: Schwarz_Lemma [OF holf f0 fr1, of 0])
   167         with \<open>r > 0\<close> show ?thesis
   167         with \<open>r > 0\<close> show ?thesis
   168           by (simp add: deq norm_mult divide_simps o_def)
   168           by (simp add: deq norm_mult divide_simps o_def)
   169       qed
   169       qed
   170     qed
   170     qed