src/HOL/Hyperreal/Series.thy
changeset 15229 1eb23f805c06
parent 15140 322485b816ac
child 15234 ec91a90c604e
equal deleted inserted replaced
15228:4d332d10fa3d 15229:1eb23f805c06
   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";