src/HOL/Multivariate_Analysis/Derivative.thy
changeset 34906 bb9dad7de515
parent 34291 4e896680897e
child 34964 4e8be3c04d37
equal deleted inserted replaced
34905:a64c7228e660 34906:bb9dad7de515
   605   hence **:"((f (x - d *\<^sub>R basis j))$k \<le> (f x)$k \<and> (f (x + d *\<^sub>R basis j))$k \<le> (f x)$k) \<or>
   605   hence **:"((f (x - d *\<^sub>R basis j))$k \<le> (f x)$k \<and> (f (x + d *\<^sub>R basis j))$k \<le> (f x)$k) \<or>
   606          ((f (x - d *\<^sub>R basis j))$k \<ge> (f x)$k \<and> (f (x + d *\<^sub>R basis j))$k \<ge> (f x)$k)" using assms(2) by auto
   606          ((f (x - d *\<^sub>R basis j))$k \<ge> (f x)$k \<and> (f (x + d *\<^sub>R basis j))$k \<ge> (f x)$k)" using assms(2) by auto
   607   have ***:"\<And>y y1 y2 d dx::real. (y1\<le>y\<and>y2\<le>y) \<or> (y\<le>y1\<and>y\<le>y2) \<Longrightarrow> d < abs dx \<Longrightarrow> abs(y1 - y - - dx) \<le> d \<Longrightarrow> (abs (y2 - y - dx) \<le> d) \<Longrightarrow> False" by arith
   607   have ***:"\<And>y y1 y2 d dx::real. (y1\<le>y\<and>y2\<le>y) \<or> (y\<le>y1\<and>y\<le>y2) \<Longrightarrow> d < abs dx \<Longrightarrow> abs(y1 - y - - dx) \<le> d \<Longrightarrow> (abs (y2 - y - dx) \<le> d) \<Longrightarrow> False" by arith
   608   show False apply(rule ***[OF **, where dx="d * D $ k $ j" and d="\<bar>D $ k $ j\<bar> / 2 * \<bar>d\<bar>"]) 
   608   show False apply(rule ***[OF **, where dx="d * D $ k $ j" and d="\<bar>D $ k $ j\<bar> / 2 * \<bar>d\<bar>"]) 
   609     using *[of "-d"] and *[of d] and d[THEN conjunct1] and j unfolding mult_minus_left
   609     using *[of "-d"] and *[of d] and d[THEN conjunct1] and j unfolding mult_minus_left
   610     unfolding abs_mult diff_minus_eq_add scaleR.minus_left unfolding  group_simps by auto qed
   610     unfolding abs_mult diff_minus_eq_add scaleR.minus_left unfolding group_simps by (auto intro: mult_pos_pos)
       
   611 qed
   611 
   612 
   612 subsection {* In particular if we have a mapping into R^1. *}
   613 subsection {* In particular if we have a mapping into R^1. *}
   613 
   614 
   614 lemma differential_zero_maxmin: fixes f::"real^'a \<Rightarrow> real"
   615 lemma differential_zero_maxmin: fixes f::"real^'a \<Rightarrow> real"
   615   assumes "x \<in> s" "open s" "(f has_derivative f') (at x)"
   616   assumes "x \<in> s" "open s" "(f has_derivative f') (at x)"