equal
deleted
inserted
replaced
272 "[|\<forall>d. - f (n + (d + d)) < (f (Suc (n + (d + d))) :: real) |] |
272 "[|\<forall>d. - f (n + (d + d)) < (f (Suc (n + (d + d))) :: real) |] |
273 ==> setsum f {0..<n+Suc(Suc 0)} \<le> setsum f {0..<Suc(Suc 0) * Suc no + n}" |
273 ==> setsum f {0..<n+Suc(Suc 0)} \<le> setsum f {0..<Suc(Suc 0) * Suc no + n}" |
274 apply (induct "no", auto) |
274 apply (induct "no", auto) |
275 apply (drule_tac x = "Suc no" in spec) |
275 apply (drule_tac x = "Suc no" in spec) |
276 apply (simp add: add_ac) |
276 apply (simp add: add_ac) |
277 (* FIXME why does simp require a separate step to prove the (pure arithmetic) |
|
278 left-over? With del cong: strong_setsum_cong it works! |
|
279 *) |
|
280 apply simp |
|
281 done |
277 done |
282 |
278 |
283 lemma sumr_pos_lt_pair: |
279 lemma sumr_pos_lt_pair: |
284 "[|summable f; |
280 "[|summable f; |
285 \<forall>d. 0 < (f(n + (Suc(Suc 0) * d))) + f(n + ((Suc(Suc 0) * d) + 1))|] |
281 \<forall>d. 0 < (f(n + (Suc(Suc 0) * d))) + f(n + ((Suc(Suc 0) * d) + 1))|] |
297 apply (subgoal_tac "suminf f + (f (n) + f (n + 1)) \<le> |
293 apply (subgoal_tac "suminf f + (f (n) + f (n + 1)) \<le> |
298 setsum f {0 ..< Suc (Suc 0) * (Suc no) + n}") |
294 setsum f {0 ..< Suc (Suc 0) * (Suc no) + n}") |
299 apply (rule_tac [2] y = "setsum f {0..<n+ Suc (Suc 0)}" in order_trans) |
295 apply (rule_tac [2] y = "setsum f {0..<n+ Suc (Suc 0)}" in order_trans) |
300 prefer 3 apply assumption |
296 prefer 3 apply assumption |
301 apply (rule_tac [2] y = "setsum f {0..<n} + (f (n) + f (n + 1))" in order_trans) |
297 apply (rule_tac [2] y = "setsum f {0..<n} + (f (n) + f (n + 1))" in order_trans) |
302 apply simp_all |
298 apply simp_all |
303 apply (subgoal_tac "suminf f \<le> setsum f {0..< Suc (Suc 0) * (Suc no) + n}") |
|
304 apply (rule_tac [2] y = "suminf f + (f (n) + f (n + 1))" in order_trans) |
|
305 prefer 3 apply simp |
|
306 apply (drule_tac [2] x = 0 in spec) |
|
307 prefer 2 apply simp |
|
308 apply (subgoal_tac "0 \<le> setsum f {0 ..< Suc (Suc 0) * Suc no + n} + - suminf f") |
|
309 apply (simp add: abs_if) |
|
310 apply (auto simp add: linorder_not_less [symmetric]) |
|
311 done |
299 done |
312 |
300 |
313 text{*A summable series of positive terms has limit that is at least as |
301 text{*A summable series of positive terms has limit that is at least as |
314 great as any partial sum.*} |
302 great as any partial sum.*} |
315 |
303 |