src/HOL/Analysis/Homotopy.thy
changeset 70802 160eaf566bcb
parent 70196 b7ef9090feed
child 70817 dd675800469d
equal deleted inserted replaced
70801:5352449209b1 70802:160eaf566bcb
  4699     proof (clarsimp simp add: dist_norm norm_minus_commute)
  4699     proof (clarsimp simp add: dist_norm norm_minus_commute)
  4700       fix x
  4700       fix x
  4701       assume x: "norm (x - a) \<le> r" and "x \<in> T"
  4701       assume x: "norm (x - a) \<le> r" and "x \<in> T"
  4702       have "\<exists>v \<in> {0..1}. ((1 - v) * r - norm ((x - a) - v *\<^sub>R (u - a))) \<bullet> 1 = 0"
  4702       have "\<exists>v \<in> {0..1}. ((1 - v) * r - norm ((x - a) - v *\<^sub>R (u - a))) \<bullet> 1 = 0"
  4703         by (rule ivt_decreasing_component_on_1) (auto simp: x continuous_intros)
  4703         by (rule ivt_decreasing_component_on_1) (auto simp: x continuous_intros)
  4704       then obtain v where "0\<le>v" "v\<le>1" and v: "(1 - v) * r = norm ((x - a) - v *\<^sub>R (u - a))"
  4704       then obtain v where "0 \<le> v" "v \<le> 1"
       
  4705         and v: "(1 - v) * r = norm ((x - a) - v *\<^sub>R (u - a))"
  4705         by auto
  4706         by auto
       
  4707       then have n: "norm (a - (x - v *\<^sub>R (u - a))) = r - r * v"
       
  4708         by (simp add: field_simps norm_minus_commute)
  4706       show "x \<in> f ` (cball a r \<inter> T)"
  4709       show "x \<in> f ` (cball a r \<inter> T)"
  4707       proof (rule image_eqI)
  4710       proof (rule image_eqI)
  4708         show "x = f (x - v *\<^sub>R (u - a))"
  4711         show "x = f (x - v *\<^sub>R (u - a))"
  4709           using \<open>r > 0\<close> v by (simp add: f_def field_simps)
  4712           using \<open>r > 0\<close> v by (simp add: f_def) (simp add: field_simps)
  4710         have "x - v *\<^sub>R (u - a) \<in> cball a r"
  4713         have "x - v *\<^sub>R (u - a) \<in> cball a r"
  4711           using \<open>r > 0\<close> v \<open>0 \<le> v\<close>
  4714           using \<open>r > 0\<close>\<open>0 \<le> v\<close>
  4712           apply (simp add: field_simps dist_norm norm_minus_commute)
  4715           by (simp add: dist_norm n)
  4713           by (metis le_add_same_cancel2 order.order_iff_strict zero_le_mult_iff)
       
  4714         moreover have "x - v *\<^sub>R (u - a) \<in> T"
  4716         moreover have "x - v *\<^sub>R (u - a) \<in> T"
  4715           by (simp add: f_def \<open>affine T\<close> \<open>u \<in> T\<close> \<open>x \<in> T\<close> assms mem_affine_3_minus2)
  4717           by (simp add: f_def \<open>affine T\<close> \<open>u \<in> T\<close> \<open>x \<in> T\<close> assms mem_affine_3_minus2)
  4716         ultimately show "x - v *\<^sub>R (u - a) \<in> cball a r \<inter> T"
  4718         ultimately show "x - v *\<^sub>R (u - a) \<in> cball a r \<inter> T"
  4717           by blast
  4719           by blast
  4718       qed
  4720       qed