src/HOL/Hyperreal/Integration.thy
changeset 20563 44eda2314aab
parent 20432 07ec57376051
child 20792 add17d26151b
equal deleted inserted replaced
20562:c2f672be8522 20563:44eda2314aab
   378 
   378 
   379 
   379 
   380 (* new simplifications e.g. (y < x/n) = (y * n < x) are a real nuisance
   380 (* new simplifications e.g. (y < x/n) = (y * n < x) are a real nuisance
   381    they break the original proofs and make new proofs longer!*)
   381    they break the original proofs and make new proofs longer!*)
   382 lemma strad1:
   382 lemma strad1:
   383        "\<lbrakk>\<forall>xa::real. xa \<noteq> x \<and> \<bar>xa + - x\<bar> < s \<longrightarrow>
   383        "\<lbrakk>\<forall>xa::real. xa \<noteq> x \<and> \<bar>xa - x\<bar> < s \<longrightarrow>
   384              \<bar>(f xa - f x) / (xa - x) + - f' x\<bar> * 2 < e;
   384              \<bar>(f xa - f x) / (xa - x) - f' x\<bar> * 2 < e;
   385         0 < e; a \<le> x; x \<le> b; 0 < s\<rbrakk>
   385         0 < e; a \<le> x; x \<le> b; 0 < s\<rbrakk>
   386        \<Longrightarrow> \<forall>z. \<bar>z - x\<bar> < s -->\<bar>f z - f x - f' x * (z - x)\<bar> * 2 \<le> e * \<bar>z - x\<bar>"
   386        \<Longrightarrow> \<forall>z. \<bar>z - x\<bar> < s -->\<bar>f z - f x - f' x * (z - x)\<bar> * 2 \<le> e * \<bar>z - x\<bar>"
   387 apply auto
   387 apply auto
   388 apply (case_tac "0 < \<bar>z - x\<bar>")
   388 apply (case_tac "0 < \<bar>z - x\<bar>")
   389  prefer 2 apply (simp add: zero_less_abs_iff)
   389  prefer 2 apply (simp add: zero_less_abs_iff)
   425 apply (simp add: right_diff_distrib)
   425 apply (simp add: right_diff_distrib)
   426 apply (rule_tac t = "e* (v - u)" in real_sum_of_halves [THEN subst])
   426 apply (rule_tac t = "e* (v - u)" in real_sum_of_halves [THEN subst])
   427 apply (rule add_mono)
   427 apply (rule add_mono)
   428 apply (rule_tac y = "(e/2) * \<bar>v - x\<bar>" in order_trans)
   428 apply (rule_tac y = "(e/2) * \<bar>v - x\<bar>" in order_trans)
   429  prefer 2 apply simp
   429  prefer 2 apply simp
   430 apply (erule_tac [!] V= "\<forall>x'. x' ~= x & \<bar>x' + - x\<bar> < s --> ?P x'" in thin_rl)
   430 apply (erule_tac [!] V= "\<forall>x'. x' ~= x & \<bar>x' - x\<bar> < s --> ?P x'" in thin_rl)
   431 apply (drule_tac x = v in spec, simp add: times_divide_eq)
   431 apply (drule_tac x = v in spec, simp add: times_divide_eq)
   432 apply (drule_tac x = u in spec, auto)
   432 apply (drule_tac x = u in spec, auto)
   433 apply (subgoal_tac "\<bar>f u - f x - f' x * (u - x)\<bar> = \<bar>f x - f u - f' x * (x - u)\<bar>")
   433 apply (subgoal_tac "\<bar>f u - f x - f' x * (u - x)\<bar> = \<bar>f x - f u - f' x * (x - u)\<bar>")
   434 apply (rule order_trans)
   434 apply (rule order_trans)
   435 apply (auto simp add: abs_le_interval_iff)
   435 apply (auto simp add: abs_le_interval_iff)
   854                        real_mult_less_iff1)
   854                        real_mult_less_iff1)
   855 done
   855 done
   856 
   856 
   857 lemma Cauchy_iff2:
   857 lemma Cauchy_iff2:
   858      "Cauchy X =
   858      "Cauchy X =
   859       (\<forall>j. (\<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. \<bar>X m + - X n\<bar> < inverse(real (Suc j))))"
   859       (\<forall>j. (\<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. \<bar>X m - X n\<bar> < inverse(real (Suc j))))"
   860 apply (simp add: Cauchy_def, auto)
   860 apply (simp add: Cauchy_def, auto)
   861 apply (drule reals_Archimedean, safe)
   861 apply (drule reals_Archimedean, safe)
   862 apply (drule_tac x = n in spec, auto)
   862 apply (drule_tac x = n in spec, auto)
   863 apply (rule_tac x = M in exI, auto)
   863 apply (rule_tac x = M in exI, auto)
   864 apply (drule_tac x = m in spec, simp)
   864 apply (drule_tac x = m in spec, simp)