107 "(\<forall>r. m \<le> r & r < n --> f r \<le> g r) --> sumr m n f \<le> sumr m n g" |
107 "(\<forall>r. m \<le> r & r < n --> f r \<le> g r) --> sumr m n f \<le> sumr m n g" |
108 apply (induct_tac "n") |
108 apply (induct_tac "n") |
109 apply (auto intro: add_mono simp add: le_def) |
109 apply (auto intro: add_mono simp add: le_def) |
110 done |
110 done |
111 |
111 |
112 lemma sumr_ge_zero [rule_format (no_asm)]: "(\<forall>n. 0 \<le> f n) --> 0 \<le> sumr m n f" |
112 lemma sumr_ge_zero [rule_format]: "(\<forall>n. m \<le> n --> 0 \<le> f n) --> 0 \<le> sumr m n f" |
113 apply (induct_tac "n", auto) |
113 apply (induct_tac "n", auto) |
114 apply (drule_tac x = n in spec, arith) |
114 apply (drule_tac x = n in spec, arith) |
115 done |
115 done |
116 |
116 |
117 lemma sumr_ge_zero2 [rule_format (no_asm)]: |
|
118 "(\<forall>n. m \<le> n --> 0 \<le> f n) --> 0 \<le> sumr m n f" |
|
119 apply (induct_tac "n", auto) |
|
120 apply (drule_tac x = n in spec, arith) |
|
121 done |
|
122 |
|
123 lemma rabs_sumr_rabs_cancel [simp]: |
117 lemma rabs_sumr_rabs_cancel [simp]: |
124 "abs (sumr m n (%n. abs (f n))) = (sumr m n (%n. abs (f n)))" |
118 "abs (sumr m n (%k. abs (f k))) = (sumr m n (%k. abs (f k)))" |
125 apply (induct_tac "n") |
119 by (induct_tac "n", simp_all add: add_increasing) |
126 apply (auto, arith) |
|
127 done |
|
128 |
120 |
129 lemma sumr_zero [rule_format]: |
121 lemma sumr_zero [rule_format]: |
130 "\<forall>n. N \<le> n --> f n = 0 ==> N \<le> m --> sumr m n f = 0" |
122 "\<forall>n. N \<le> n --> f n = 0 ==> N \<le> m --> sumr m n f = 0" |
131 by (induct_tac "n", auto) |
123 by (induct_tac "n", auto) |
132 |
124 |
478 val sumr_rabs = thm "sumr_rabs"; |
470 val sumr_rabs = thm "sumr_rabs"; |
479 val sumr_fun_eq = thm "sumr_fun_eq"; |
471 val sumr_fun_eq = thm "sumr_fun_eq"; |
480 val sumr_diff_mult_const = thm "sumr_diff_mult_const"; |
472 val sumr_diff_mult_const = thm "sumr_diff_mult_const"; |
481 val sumr_minus_one_realpow_zero = thm "sumr_minus_one_realpow_zero"; |
473 val sumr_minus_one_realpow_zero = thm "sumr_minus_one_realpow_zero"; |
482 val sumr_le2 = thm "sumr_le2"; |
474 val sumr_le2 = thm "sumr_le2"; |
483 val sumr_ge_zero = thm "sumr_ge_zero"; |
|
484 val sumr_ge_zero2 = thm "sumr_ge_zero2"; |
|
485 val sumr_rabs_ge_zero = thm "sumr_rabs_ge_zero"; |
|
486 val rabs_sumr_rabs_cancel = thm "rabs_sumr_rabs_cancel"; |
475 val rabs_sumr_rabs_cancel = thm "rabs_sumr_rabs_cancel"; |
487 val sumr_zero = thm "sumr_zero"; |
476 val sumr_zero = thm "sumr_zero"; |
488 val Suc_le_imp_diff_ge2 = thm "Suc_le_imp_diff_ge2"; |
477 val Suc_le_imp_diff_ge2 = thm "Suc_le_imp_diff_ge2"; |
489 val sumr_one_lb_realpow_zero = thm "sumr_one_lb_realpow_zero"; |
478 val sumr_one_lb_realpow_zero = thm "sumr_one_lb_realpow_zero"; |
490 val sumr_diff = thm "sumr_diff"; |
479 val sumr_diff = thm "sumr_diff"; |