src/HOL/Hyperreal/Series.thy
changeset 20410 4bd5cd97c547
parent 20254 58b71535ed00
child 20432 07ec57376051
equal deleted inserted replaced
20409:eba80f91e3fc 20410:4bd5cd97c547
   344 by (simp add: summable_def sums_def convergent_def)
   344 by (simp add: summable_def sums_def convergent_def)
   345 
   345 
   346 lemma summable_Cauchy:
   346 lemma summable_Cauchy:
   347      "summable f =  
   347      "summable f =  
   348       (\<forall>e > 0. \<exists>N. \<forall>m \<ge> N. \<forall>n. abs(setsum f {m..<n}) < e)"
   348       (\<forall>e > 0. \<exists>N. \<forall>m \<ge> N. \<forall>n. abs(setsum f {m..<n}) < e)"
   349 apply (auto simp add: summable_convergent_sumr_iff Cauchy_convergent_iff [symmetric] Cauchy_def diff_minus[symmetric])
   349 apply (simp only: summable_convergent_sumr_iff Cauchy_convergent_iff [symmetric] Cauchy_def diff_minus [symmetric], safe)
   350 apply (drule_tac [!] spec, auto)
   350 apply (drule spec, drule (1) mp)
   351 apply (rule_tac x = M in exI)
   351 apply (erule exE, rule_tac x="M" in exI, clarify)
   352 apply (rule_tac [2] x = N in exI, auto)
   352 apply (rule_tac x="m" and y="n" in linorder_le_cases)
   353 apply (cut_tac [!] m = m and n = n in less_linear, auto)
   353 apply (frule (1) order_trans)
   354 apply (frule le_less_trans [THEN less_imp_le], assumption)
   354 apply (drule_tac x="n" in spec, drule (1) mp)
   355 apply (drule_tac x = n in spec, simp)
   355 apply (drule_tac x="m" in spec, drule (1) mp)
   356 apply (drule_tac x = m in spec)
   356 apply (simp add: setsum_diff [symmetric])
   357 apply(simp add: setsum_diff[symmetric])
   357 apply simp
   358 apply(subst abs_minus_commute)
   358 apply (drule spec, drule (1) mp)
   359 apply(simp add: setsum_diff[symmetric])
   359 apply (erule exE, rule_tac x="N" in exI, clarify)
   360 apply(simp add: setsum_diff[symmetric])
   360 apply (rule_tac x="m" and y="n" in linorder_le_cases)
       
   361 apply (subst abs_minus_commute)
       
   362 apply (simp add: setsum_diff [symmetric])
       
   363 apply (simp add: setsum_diff [symmetric])
   361 done
   364 done
   362 
   365 
   363 text{*Comparison test*}
   366 text{*Comparison test*}
   364 
   367 
   365 lemma summable_comparison_test:
   368 lemma summable_comparison_test: