equal
deleted
inserted
replaced
349 qed |
349 qed |
350 |
350 |
351 lemmas has_derivative_mult[simp, derivative_intros] = bounded_bilinear.FDERIV[OF bounded_bilinear_mult] |
351 lemmas has_derivative_mult[simp, derivative_intros] = bounded_bilinear.FDERIV[OF bounded_bilinear_mult] |
352 lemmas has_derivative_scaleR[simp, derivative_intros] = bounded_bilinear.FDERIV[OF bounded_bilinear_scaleR] |
352 lemmas has_derivative_scaleR[simp, derivative_intros] = bounded_bilinear.FDERIV[OF bounded_bilinear_scaleR] |
353 |
353 |
354 lemma has_derivative_setprod[simp, derivative_intros]: |
354 lemma has_derivative_prod[simp, derivative_intros]: |
355 fixes f :: "'i \<Rightarrow> 'a::real_normed_vector \<Rightarrow> 'b::real_normed_field" |
355 fixes f :: "'i \<Rightarrow> 'a::real_normed_vector \<Rightarrow> 'b::real_normed_field" |
356 shows "(\<And>i. i \<in> I \<Longrightarrow> (f i has_derivative f' i) (at x within s)) \<Longrightarrow> |
356 shows "(\<And>i. i \<in> I \<Longrightarrow> (f i has_derivative f' i) (at x within s)) \<Longrightarrow> |
357 ((\<lambda>x. \<Prod>i\<in>I. f i x) has_derivative (\<lambda>y. \<Sum>i\<in>I. f' i y * (\<Prod>j\<in>I - {i}. f j x))) (at x within s)" |
357 ((\<lambda>x. \<Prod>i\<in>I. f i x) has_derivative (\<lambda>y. \<Sum>i\<in>I. f' i y * (\<Prod>j\<in>I - {i}. f j x))) (at x within s)" |
358 proof (induct I rule: infinite_finite_induct) |
358 proof (induct I rule: infinite_finite_induct) |
359 case infinite |
359 case infinite |
375 |
375 |
376 lemma has_derivative_power[simp, derivative_intros]: |
376 lemma has_derivative_power[simp, derivative_intros]: |
377 fixes f :: "'a :: real_normed_vector \<Rightarrow> 'b :: real_normed_field" |
377 fixes f :: "'a :: real_normed_vector \<Rightarrow> 'b :: real_normed_field" |
378 assumes f: "(f has_derivative f') (at x within s)" |
378 assumes f: "(f has_derivative f') (at x within s)" |
379 shows "((\<lambda>x. f x^n) has_derivative (\<lambda>y. of_nat n * f' y * f x^(n - 1))) (at x within s)" |
379 shows "((\<lambda>x. f x^n) has_derivative (\<lambda>y. of_nat n * f' y * f x^(n - 1))) (at x within s)" |
380 using has_derivative_setprod[OF f, of "{..< n}"] by (simp add: setprod_constant ac_simps) |
380 using has_derivative_prod[OF f, of "{..< n}"] by (simp add: prod_constant ac_simps) |
381 |
381 |
382 lemma has_derivative_inverse': |
382 lemma has_derivative_inverse': |
383 fixes x :: "'a::real_normed_div_algebra" |
383 fixes x :: "'a::real_normed_div_algebra" |
384 assumes x: "x \<noteq> 0" |
384 assumes x: "x \<noteq> 0" |
385 shows "(inverse has_derivative (\<lambda>h. - (inverse x * h * inverse x))) (at x within s)" |
385 shows "(inverse has_derivative (\<lambda>h. - (inverse x * h * inverse x))) (at x within s)" |