src/HOL/Deriv.thy
changeset 59867 58043346ca64
parent 59862 44b3f4fa33ca
child 60177 2bfcb83531c6
equal deleted inserted replaced
59866:eebe69f31474 59867:58043346ca64
   696     ((\<lambda>x. setsum (f x) S) has_field_derivative setsum (f' x) S) F"
   696     ((\<lambda>x. setsum (f x) S) has_field_derivative setsum (f' x) S) F"
   697   by (rule has_derivative_imp_has_field_derivative[OF has_derivative_setsum])
   697   by (rule has_derivative_imp_has_field_derivative[OF has_derivative_setsum])
   698      (auto simp: setsum_right_distrib mult_commute_abs dest: has_field_derivative_imp_has_derivative)
   698      (auto simp: setsum_right_distrib mult_commute_abs dest: has_field_derivative_imp_has_derivative)
   699 
   699 
   700 lemma DERIV_inverse'[derivative_intros]:
   700 lemma DERIV_inverse'[derivative_intros]:
   701   "(f has_field_derivative D) (at x within s) \<Longrightarrow> f x \<noteq> 0 \<Longrightarrow>
   701   assumes "(f has_field_derivative D) (at x within s)"
   702   ((\<lambda>x. inverse (f x)) has_field_derivative - (inverse (f x) * D * inverse (f x))) (at x within s)"
   702     and "f x \<noteq> 0"
   703   by (rule has_derivative_imp_has_field_derivative[OF has_derivative_inverse])
   703   shows "((\<lambda>x. inverse (f x)) has_field_derivative - (inverse (f x) * D * inverse (f x))) (at x within s)"
   704      (auto dest: has_field_derivative_imp_has_derivative)
   704 proof -
       
   705   have "(f has_derivative (\<lambda>x. x * D)) = (f has_derivative op * D)"
       
   706     by (rule arg_cong [of "\<lambda>x. x * D"]) (simp add: fun_eq_iff)
       
   707   with assms have "(f has_derivative (\<lambda>x. x * D)) (at x within s)"
       
   708     by (auto dest!: has_field_derivative_imp_has_derivative)
       
   709   then show ?thesis using `f x \<noteq> 0`
       
   710     by (auto intro: has_derivative_imp_has_field_derivative has_derivative_inverse)
       
   711 qed
   705 
   712 
   706 text {* Power of @{text "-1"} *}
   713 text {* Power of @{text "-1"} *}
   707 
   714 
   708 lemma DERIV_inverse:
   715 lemma DERIV_inverse:
   709   "x \<noteq> 0 \<Longrightarrow> ((\<lambda>x. inverse(x)) has_field_derivative - (inverse x ^ Suc (Suc 0))) (at x within s)"
   716   "x \<noteq> 0 \<Longrightarrow> ((\<lambda>x. inverse(x)) has_field_derivative - (inverse x ^ Suc (Suc 0))) (at x within s)"