428 Goal "abs(x) < 1 ==> (%n. x ^ n) sums (1/(1 - x))"; |
428 Goal "abs(x) < 1 ==> (%n. x ^ n) sums (1/(1 - x))"; |
429 by (case_tac "x = 1" 1); |
429 by (case_tac "x = 1" 1); |
430 by (auto_tac (claset() addSDs [LIMSEQ_rabs_realpow_zero2], |
430 by (auto_tac (claset() addSDs [LIMSEQ_rabs_realpow_zero2], |
431 simpset() addsimps [sumr_geometric ,sums_def, |
431 simpset() addsimps [sumr_geometric ,sums_def, |
432 real_diff_def, real_add_divide_distrib])); |
432 real_diff_def, real_add_divide_distrib])); |
433 by (subgoal_tac "1 / (1 + -x) = 0/(x - 1) + - 1/(x - 1)" 1); |
433 by (subgoal_tac "1 / (1 + -x) = 0/(x - 1) + - 1/(x - 1)" 1); |
434 by (asm_full_simp_tac (simpset() addsimps [ |
434 by (asm_full_simp_tac (simpset() addsimps [thm"minus_divide_right"]) 2); |
435 real_divide_minus_eq RS sym, real_diff_def]) 2); |
|
436 by (etac ssubst 1); |
435 by (etac ssubst 1); |
437 by (rtac LIMSEQ_add 1 THEN rtac LIMSEQ_divide 1); |
436 by (rtac LIMSEQ_add 1 THEN rtac LIMSEQ_divide 1); |
438 by (auto_tac (claset() addIs [LIMSEQ_const], |
437 by (auto_tac (claset() addIs [LIMSEQ_const], |
439 simpset() addsimps [real_diff_def, LIMSEQ_rabs_realpow_zero2])); |
438 simpset() addsimps [real_diff_def, LIMSEQ_rabs_realpow_zero2])); |
440 qed "geometric_sums"; |
439 qed "geometric_sums"; |