equal
deleted
inserted
replaced
281 (* |
281 (* |
282 Goalw [sums_def,LIMSEQ_def] |
282 Goalw [sums_def,LIMSEQ_def] |
283 "(ALL m. n <= Suc m --> f(m) = 0) ==> f sums (sumr 0 n f)"; |
283 "(ALL m. n <= Suc m --> f(m) = 0) ==> f sums (sumr 0 n f)"; |
284 by (Step_tac 1); |
284 by (Step_tac 1); |
285 by (res_inst_tac [("x","n")] exI 1); |
285 by (res_inst_tac [("x","n")] exI 1); |
286 by (Step_tac 1 THEN forward_tac [le_imp_less_or_eq] 1); |
286 by (Step_tac 1 THEN ftac le_imp_less_or_eq 1); |
287 by (Step_tac 1); |
287 by (Step_tac 1); |
288 by (dres_inst_tac [("f","f")] sumr_split_add_minus 1); |
288 by (dres_inst_tac [("f","f")] sumr_split_add_minus 1); |
289 by (ALLGOALS (Asm_simp_tac)); |
289 by (ALLGOALS (Asm_simp_tac)); |
290 by (dtac (conjI RS sumr_interval_const) 1); |
290 by (dtac (conjI RS sumr_interval_const) 1); |
291 by (Auto_tac); |
291 by (Auto_tac); |
295 |
295 |
296 Goalw [sums_def,LIMSEQ_def] |
296 Goalw [sums_def,LIMSEQ_def] |
297 "(ALL m. n <= m --> f(m) = 0) ==> f sums (sumr 0 n f)"; |
297 "(ALL m. n <= m --> f(m) = 0) ==> f sums (sumr 0 n f)"; |
298 by (Step_tac 1); |
298 by (Step_tac 1); |
299 by (res_inst_tac [("x","n")] exI 1); |
299 by (res_inst_tac [("x","n")] exI 1); |
300 by (Step_tac 1 THEN forward_tac [le_imp_less_or_eq] 1); |
300 by (Step_tac 1 THEN ftac le_imp_less_or_eq 1); |
301 by (Step_tac 1); |
301 by (Step_tac 1); |
302 by (dres_inst_tac [("f","f")] sumr_split_add_minus 1); |
302 by (dres_inst_tac [("f","f")] sumr_split_add_minus 1); |
303 by (ALLGOALS (Asm_simp_tac)); |
303 by (ALLGOALS (Asm_simp_tac)); |
304 by (dtac (conjI RS sumr_interval_const2) 1); |
304 by (dtac (conjI RS sumr_interval_const2) 1); |
305 by (Auto_tac); |
305 by (Auto_tac); |
569 by (dtac Suc_le_imp_diff_ge2 1 THEN Auto_tac); |
569 by (dtac Suc_le_imp_diff_ge2 1 THEN Auto_tac); |
570 qed "ratio_test_lemma2"; |
570 qed "ratio_test_lemma2"; |
571 |
571 |
572 Goal "[| c < 1; ALL n. N <= n --> abs(f(Suc n)) <= c*abs(f n) |] \ |
572 Goal "[| c < 1; ALL n. N <= n --> abs(f(Suc n)) <= c*abs(f n) |] \ |
573 \ ==> summable f"; |
573 \ ==> summable f"; |
574 by (forward_tac [ratio_test_lemma2] 1); |
574 by (ftac ratio_test_lemma2 1); |
575 by Auto_tac; |
575 by Auto_tac; |
576 by (res_inst_tac [("g","%n. (abs (f N)/(c ^ N))*c ^ n")] |
576 by (res_inst_tac [("g","%n. (abs (f N)/(c ^ N))*c ^ n")] |
577 summable_comparison_test 1); |
577 summable_comparison_test 1); |
578 by (res_inst_tac [("x","N")] exI 1 THEN Step_tac 1); |
578 by (res_inst_tac [("x","N")] exI 1 THEN Step_tac 1); |
579 by (dtac (le_Suc_ex_iff RS iffD1) 1); |
579 by (dtac (le_Suc_ex_iff RS iffD1) 1); |