src/HOL/Deriv.thy
changeset 57514 bdc2c6b40bf2
parent 57512 cc97b347b301
child 57953 69728243a614
equal deleted inserted replaced
57513:55b2afc5ddfc 57514:bdc2c6b40bf2
   679   "(f has_field_derivative D) (at x within s) ==> ((\<lambda>x. c * f x) has_field_derivative c * D) (at x within s)"
   679   "(f has_field_derivative D) (at x within s) ==> ((\<lambda>x. c * f x) has_field_derivative c * D) (at x within s)"
   680   by (drule DERIV_mult' [OF DERIV_const], simp)
   680   by (drule DERIV_mult' [OF DERIV_const], simp)
   681 
   681 
   682 lemma DERIV_cmult_right:
   682 lemma DERIV_cmult_right:
   683   "(f has_field_derivative D) (at x within s) ==> ((\<lambda>x. f x * c) has_field_derivative D * c) (at x within s)"
   683   "(f has_field_derivative D) (at x within s) ==> ((\<lambda>x. f x * c) has_field_derivative D * c) (at x within s)"
   684   using DERIV_cmult by (force simp add: mult_ac)
   684   using DERIV_cmult by (force simp add: ac_simps)
   685 
   685 
   686 lemma DERIV_cmult_Id [simp]: "(op * c has_field_derivative c) (at x within s)"
   686 lemma DERIV_cmult_Id [simp]: "(op * c has_field_derivative c) (at x within s)"
   687   by (cut_tac c = c and x = x in DERIV_ident [THEN DERIV_cmult], simp)
   687   by (cut_tac c = c and x = x in DERIV_ident [THEN DERIV_cmult], simp)
   688 
   688 
   689 lemma DERIV_cdivide:
   689 lemma DERIV_cdivide:
   715 text {* Derivative of inverse *}
   715 text {* Derivative of inverse *}
   716 
   716 
   717 lemma DERIV_inverse_fun:
   717 lemma DERIV_inverse_fun:
   718   "(f has_field_derivative d) (at x within s) \<Longrightarrow> f x \<noteq> 0 \<Longrightarrow>
   718   "(f has_field_derivative d) (at x within s) \<Longrightarrow> f x \<noteq> 0 \<Longrightarrow>
   719   ((\<lambda>x. inverse (f x)) has_field_derivative (- (d * inverse(f x ^ Suc (Suc 0))))) (at x within s)"
   719   ((\<lambda>x. inverse (f x)) has_field_derivative (- (d * inverse(f x ^ Suc (Suc 0))))) (at x within s)"
   720   by (drule (1) DERIV_inverse') (simp add: mult_ac nonzero_inverse_mult_distrib)
   720   by (drule (1) DERIV_inverse') (simp add: ac_simps nonzero_inverse_mult_distrib)
   721 
   721 
   722 text {* Derivative of quotient *}
   722 text {* Derivative of quotient *}
   723 
   723 
   724 lemma DERIV_divide[derivative_intros]:
   724 lemma DERIV_divide[derivative_intros]:
   725   "(f has_field_derivative D) (at x within s) \<Longrightarrow>
   725   "(f has_field_derivative D) (at x within s) \<Longrightarrow>
  1477     hence "?h b - ?h a = 0" by auto
  1477     hence "?h b - ?h a = 0" by auto
  1478   }
  1478   }
  1479   ultimately have "(b - a) * (g'c * (f b - f a) - f'c * (g b - g a)) = 0" by auto
  1479   ultimately have "(b - a) * (g'c * (f b - f a) - f'c * (g b - g a)) = 0" by auto
  1480   with alb have "g'c * (f b - f a) - f'c * (g b - g a) = 0" by simp
  1480   with alb have "g'c * (f b - f a) - f'c * (g b - g a) = 0" by simp
  1481   hence "g'c * (f b - f a) = f'c * (g b - g a)" by simp
  1481   hence "g'c * (f b - f a) = f'c * (g b - g a)" by simp
  1482   hence "(f b - f a) * g'c = (g b - g a) * f'c" by (simp add: mult_ac)
  1482   hence "(f b - f a) * g'c = (g b - g a) * f'c" by (simp add: ac_simps)
  1483 
  1483 
  1484   with g'cdef f'cdef cint show ?thesis by auto
  1484   with g'cdef f'cdef cint show ?thesis by auto
  1485 qed
  1485 qed
  1486 
  1486 
  1487 lemma GMVT':
  1487 lemma GMVT':