src/HOL/Analysis/Conformal_Mappings.thy
changeset 69064 5840724b1d71
parent 68629 f36858fdf768
child 69508 2a4c8a2a3f8e
equal deleted inserted replaced
69045:8c240fdeffcb 69064:5840724b1d71
  1131       apply (rule mult_right_mono [OF \<delta>])
  1131       apply (rule mult_right_mono [OF \<delta>])
  1132       apply (auto simp: dist_commute Rings.ordered_semiring_class.mult_right_mono \<delta>)
  1132       apply (auto simp: dist_commute Rings.ordered_semiring_class.mult_right_mono \<delta>)
  1133       done
  1133       done
  1134     with \<open>e>0\<close> show ?thesis by force
  1134     with \<open>e>0\<close> show ?thesis by force
  1135   qed
  1135   qed
  1136   have "inj (( * ) (deriv f \<xi>))"
  1136   have "inj ((*) (deriv f \<xi>))"
  1137     using dnz by simp
  1137     using dnz by simp
  1138   then obtain g' where g': "linear g'" "g' \<circ> ( * ) (deriv f \<xi>) = id"
  1138   then obtain g' where g': "linear g'" "g' \<circ> (*) (deriv f \<xi>) = id"
  1139     using linear_injective_left_inverse [of "( * ) (deriv f \<xi>)"]
  1139     using linear_injective_left_inverse [of "(*) (deriv f \<xi>)"]
  1140     by (auto simp: linear_times)
  1140     by (auto simp: linear_times)
  1141   show ?thesis
  1141   show ?thesis
  1142     apply (rule has_derivative_locally_injective [OF S, where f=f and f' = "\<lambda>z h. deriv f z * h" and g' = g'])
  1142     apply (rule has_derivative_locally_injective [OF S, where f=f and f' = "\<lambda>z h. deriv f z * h" and g' = g'])
  1143     using g' *
  1143     using g' *
  1144     apply (simp_all add: linear_conv_bounded_linear that)
  1144     apply (simp_all add: linear_conv_bounded_linear that)
  2081     apply (rule derivative_eq_intros | simp add: C_def False fo)+
  2081     apply (rule derivative_eq_intros | simp add: C_def False fo)+
  2082     using \<open>0 < r\<close>
  2082     using \<open>0 < r\<close>
  2083     apply (simp add: C_def False fo)
  2083     apply (simp add: C_def False fo)
  2084     apply (simp add: derivative_intros dfa complex_derivative_chain)
  2084     apply (simp add: derivative_intros dfa complex_derivative_chain)
  2085     done
  2085     done
  2086   have sb1: "( * ) (C * r) ` (\<lambda>z. f (a + of_real r * z) / (C * r)) ` ball 0 1
  2086   have sb1: "(*) (C * r) ` (\<lambda>z. f (a + of_real r * z) / (C * r)) ` ball 0 1
  2087              \<subseteq> f ` ball a r"
  2087              \<subseteq> f ` ball a r"
  2088     using \<open>0 < r\<close> by (auto simp: dist_norm norm_mult C_def False)
  2088     using \<open>0 < r\<close> by (auto simp: dist_norm norm_mult C_def False)
  2089   have sb2: "ball (C * r * b) r' \<subseteq> ( * ) (C * r) ` ball b t"
  2089   have sb2: "ball (C * r * b) r' \<subseteq> (*) (C * r) ` ball b t"
  2090              if "1 / 12 < t" for b t
  2090              if "1 / 12 < t" for b t
  2091   proof -
  2091   proof -
  2092     have *: "r * cmod (deriv f a) / 12 \<le> r * (t * cmod (deriv f a))"
  2092     have *: "r * cmod (deriv f a) / 12 \<le> r * (t * cmod (deriv f a))"
  2093       using that \<open>0 < r\<close> less_eq_real_def mult.commute mult.right_neutral mult_left_mono norm_ge_zero times_divide_eq_right
  2093       using that \<open>0 < r\<close> less_eq_real_def mult.commute mult.right_neutral mult_left_mono norm_ge_zero times_divide_eq_right
  2094       by auto
  2094       by auto