src/HOL/Analysis/Elementary_Normed_Spaces.thy
changeset 70630 2402aa499ffe
parent 70532 fcf3b891ccb1
child 70688 3d894e1cfc75
equal deleted inserted replaced
70629:2bbd945728e2 70630:2402aa499ffe
   124     show "?rhs \<subseteq> ?lhs"
   124     show "?rhs \<subseteq> ?lhs"
   125     proof (clarsimp, intro conjI impI subsetI)
   125     proof (clarsimp, intro conjI impI subsetI)
   126       show "\<lbrakk>0 \<le> m; a \<le> b; x \<in> {m *\<^sub>R a + c..m *\<^sub>R b + c}\<rbrakk>
   126       show "\<lbrakk>0 \<le> m; a \<le> b; x \<in> {m *\<^sub>R a + c..m *\<^sub>R b + c}\<rbrakk>
   127             \<Longrightarrow> x \<in> (\<lambda>x. m *\<^sub>R x + c) ` {a..b}" for x
   127             \<Longrightarrow> x \<in> (\<lambda>x. m *\<^sub>R x + c) ` {a..b}" for x
   128         apply (rule_tac x="inverse m *\<^sub>R (x-c)" in rev_image_eqI)
   128         apply (rule_tac x="inverse m *\<^sub>R (x-c)" in rev_image_eqI)
   129         using False apply (auto simp: le_diff_eq pos_le_divideRI)
   129         using False apply (auto simp: pos_le_divideR_eq pos_divideR_le_eq le_diff_eq diff_le_eq)
   130         using diff_le_eq pos_le_divideR_eq by force
   130         done
   131       show "\<lbrakk>\<not> 0 \<le> m; a \<le> b;  x \<in> {m *\<^sub>R b + c..m *\<^sub>R a + c}\<rbrakk>
   131       show "\<lbrakk>\<not> 0 \<le> m; a \<le> b;  x \<in> {m *\<^sub>R b + c..m *\<^sub>R a + c}\<rbrakk>
   132             \<Longrightarrow> x \<in> (\<lambda>x. m *\<^sub>R x + c) ` {a..b}" for x
   132             \<Longrightarrow> x \<in> (\<lambda>x. m *\<^sub>R x + c) ` {a..b}" for x
   133         apply (rule_tac x="inverse m *\<^sub>R (x-c)" in rev_image_eqI)
   133         apply (rule_tac x="inverse m *\<^sub>R (x-c)" in rev_image_eqI)
   134         apply (auto simp add: neg_le_divideR_eq not_le)
   134          apply (auto simp add: neg_le_divideR_eq neg_divideR_le_eq not_le le_diff_eq diff_le_eq)
   135          apply (auto simp: field_simps)
       
   136         apply (metis (no_types, lifting) add_diff_cancel_left' add_le_imp_le_right diff_add_cancel inverse_eq_divide neg_le_divideR_eq neg_le_iff_le scale_minus_right)
       
   137         done
   135         done
   138     qed
   136     qed
   139   qed
   137   qed
   140 qed
   138 qed
   141 
   139 
  1774       and "continuous_on S f"
  1772       and "continuous_on S f"
  1775       and "finite (f ` S)"
  1773       and "finite (f ` S)"
  1776     shows "f constant_on S"
  1774     shows "f constant_on S"
  1777   using assms continuous_finite_range_constant_eq  by blast
  1775   using assms continuous_finite_range_constant_eq  by blast
  1778 
  1776 
  1779 
       
  1780 end
  1777 end