src/HOL/Multivariate_Analysis/Derivative.thy
changeset 36725 34c36a5cb808
parent 36721 bfd7f5c3bf69
child 36844 5f9385ecc1a7
equal deleted inserted replaced
36724:5779d9fbedd0 36725:34c36a5cb808
   696   have "\<exists>x\<in>{a<..<b}. (op \<bullet> (f b - f a) \<circ> f) b - (op \<bullet> (f b - f a) \<circ> f) a = (f b - f a) \<bullet> f' x (b - a)"
   696   have "\<exists>x\<in>{a<..<b}. (op \<bullet> (f b - f a) \<circ> f) b - (op \<bullet> (f b - f a) \<circ> f) a = (f b - f a) \<bullet> f' x (b - a)"
   697     apply(rule mvt) apply(rule assms(1)) apply(rule continuous_on_inner continuous_on_intros assms(2))+ 
   697     apply(rule mvt) apply(rule assms(1)) apply(rule continuous_on_inner continuous_on_intros assms(2))+ 
   698     unfolding o_def apply(rule,rule has_derivative_lift_dot) using assms(3) by auto
   698     unfolding o_def apply(rule,rule has_derivative_lift_dot) using assms(3) by auto
   699   then guess x .. note x=this
   699   then guess x .. note x=this
   700   show ?thesis proof(cases "f a = f b")
   700   show ?thesis proof(cases "f a = f b")
   701     case False have "norm (f b - f a) * norm (f b - f a) = norm (f b - f a)^2" by(simp add:class_semiring.semiring_rules)
   701     case False have "norm (f b - f a) * norm (f b - f a) = norm (f b - f a)^2" by(simp add:normalizing.semiring_rules)
   702     also have "\<dots> = (f b - f a) \<bullet> (f b - f a)" unfolding power2_norm_eq_inner ..
   702     also have "\<dots> = (f b - f a) \<bullet> (f b - f a)" unfolding power2_norm_eq_inner ..
   703     also have "\<dots> = (f b - f a) \<bullet> f' x (b - a)" using x unfolding inner_simps by auto
   703     also have "\<dots> = (f b - f a) \<bullet> f' x (b - a)" using x unfolding inner_simps by auto
   704     also have "\<dots> \<le> norm (f b - f a) * norm (f' x (b - a))" by(rule norm_cauchy_schwarz)
   704     also have "\<dots> \<le> norm (f b - f a) * norm (f' x (b - a))" by(rule norm_cauchy_schwarz)
   705     finally show ?thesis using False x(1) by(auto simp add: real_mult_left_cancel) next
   705     finally show ?thesis using False x(1) by(auto simp add: real_mult_left_cancel) next
   706     case True thus ?thesis using assms(1) apply(rule_tac x="(a + b) /2" in bexI) by auto qed qed
   706     case True thus ?thesis using assms(1) apply(rule_tac x="(a + b) /2" in bexI) by auto qed qed