equal
deleted
inserted
replaced
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 |