src/HOL/Analysis/Derivative.thy
changeset 63955 51a3d38d2281
parent 63952 354808e9f44b
child 64008 17a20ca86d62
equal deleted inserted replaced
63954:fb03766658f4 63955:51a3d38d2281
   178 corollary differentiable_iff_scaleR:
   178 corollary differentiable_iff_scaleR:
   179   fixes f :: "real \<Rightarrow> 'a::real_normed_vector"
   179   fixes f :: "real \<Rightarrow> 'a::real_normed_vector"
   180   shows "f differentiable F \<longleftrightarrow> (\<exists>d. (f has_derivative (\<lambda>x. x *\<^sub>R d)) F)"
   180   shows "f differentiable F \<longleftrightarrow> (\<exists>d. (f has_derivative (\<lambda>x. x *\<^sub>R d)) F)"
   181   by (auto simp: differentiable_def dest: has_derivative_linear linear_imp_scaleR)
   181   by (auto simp: differentiable_def dest: has_derivative_linear linear_imp_scaleR)
   182 
   182 
   183 lemma differentiable_within_open: (* TODO: delete *)
       
   184   assumes "a \<in> s"
       
   185     and "open s"
       
   186   shows "f differentiable (at a within s) \<longleftrightarrow> f differentiable (at a)"
       
   187   using assms
       
   188   by (simp only: at_within_interior interior_open)
       
   189 
       
   190 lemma differentiable_on_eq_differentiable_at:
   183 lemma differentiable_on_eq_differentiable_at:
   191   "open s \<Longrightarrow> f differentiable_on s \<longleftrightarrow> (\<forall>x\<in>s. f differentiable at x)"
   184   "open s \<Longrightarrow> f differentiable_on s \<longleftrightarrow> (\<forall>x\<in>s. f differentiable at x)"
   192   unfolding differentiable_on_def
   185   unfolding differentiable_on_def
   193   by (metis at_within_interior interior_open)
   186   by (metis at_within_interior interior_open)
   194 
   187 
   204 lemma differentiable_on_ident [simp, derivative_intros]: "(\<lambda>x. x) differentiable_on S"
   197 lemma differentiable_on_ident [simp, derivative_intros]: "(\<lambda>x. x) differentiable_on S"
   205   by (simp add: differentiable_at_imp_differentiable_on)
   198   by (simp add: differentiable_at_imp_differentiable_on)
   206 
   199 
   207 lemma differentiable_on_id [simp, derivative_intros]: "id differentiable_on S"
   200 lemma differentiable_on_id [simp, derivative_intros]: "id differentiable_on S"
   208   by (simp add: id_def)
   201   by (simp add: id_def)
       
   202 
       
   203 lemma differentiable_on_const [simp, derivative_intros]: "(\<lambda>z. c) differentiable_on S"
       
   204   by (simp add: differentiable_on_def)
       
   205 
       
   206 lemma differentiable_on_mult [simp, derivative_intros]:
       
   207   fixes f :: "'M::real_normed_vector \<Rightarrow> 'a::real_normed_algebra"
       
   208   shows "\<lbrakk>f differentiable_on S; g differentiable_on S\<rbrakk> \<Longrightarrow> (\<lambda>z. f z * g z) differentiable_on S"
       
   209   apply (simp add: differentiable_on_def differentiable_def)
       
   210   using differentiable_def differentiable_mult by blast
   209 
   211 
   210 lemma differentiable_on_compose:
   212 lemma differentiable_on_compose:
   211    "\<lbrakk>g differentiable_on S; f differentiable_on (g ` S)\<rbrakk> \<Longrightarrow> (\<lambda>x. f (g x)) differentiable_on S"
   213    "\<lbrakk>g differentiable_on S; f differentiable_on (g ` S)\<rbrakk> \<Longrightarrow> (\<lambda>x. f (g x)) differentiable_on S"
   212 by (simp add: differentiable_in_compose differentiable_on_def)
   214 by (simp add: differentiable_in_compose differentiable_on_def)
   213 
   215