src/HOL/Hyperreal/Integration.thy
changeset 15251 bb6f072c8d10
parent 15234 ec91a90c604e
child 15360 300e09825d8b
equal deleted inserted replaced
15250:217bececa2bd 15251:bb6f072c8d10
    94 lemma partition_rhs2: "[|partition(a,b) D; psize D \<le> n |] ==> (D n = b)"
    94 lemma partition_rhs2: "[|partition(a,b) D; psize D \<le> n |] ==> (D n = b)"
    95 by (simp add: partition)
    95 by (simp add: partition)
    96 
    96 
    97 lemma lemma_partition_lt_gen [rule_format]:
    97 lemma lemma_partition_lt_gen [rule_format]:
    98  "partition(a,b) D & m + Suc d \<le> n & n \<le> (psize D) --> D(m) < D(m + Suc d)"
    98  "partition(a,b) D & m + Suc d \<le> n & n \<le> (psize D) --> D(m) < D(m + Suc d)"
    99 apply (induct_tac "d", auto simp add: partition)
    99 apply (induct "d", auto simp add: partition)
   100 apply (blast dest: Suc_le_lessD  intro: less_le_trans order_less_trans)
   100 apply (blast dest: Suc_le_lessD  intro: less_le_trans order_less_trans)
   101 done
   101 done
   102 
   102 
   103 lemma less_eq_add_Suc: "m < n ==> \<exists>d. n = m + Suc d"
   103 lemma less_eq_add_Suc: "m < n ==> \<exists>d. n = m + Suc d"
   104 by (auto simp add: less_iff_Suc_add)
   104 by (auto simp add: less_iff_Suc_add)
   131 apply auto
   131 apply auto
   132 done
   132 done
   133 
   133 
   134 lemma partition_lb: "partition(a,b) D ==> a \<le> D(r)"
   134 lemma partition_lb: "partition(a,b) D ==> a \<le> D(r)"
   135 apply (frule partition [THEN iffD1], safe)
   135 apply (frule partition [THEN iffD1], safe)
   136 apply (induct_tac "r")
   136 apply (induct "r")
   137 apply (cut_tac [2] y = "Suc n" and x = "psize D" in linorder_le_less_linear, safe)
   137 apply (cut_tac [2] y = "Suc r" and x = "psize D" in linorder_le_less_linear)
   138  apply (blast intro: order_trans partition_le)
   138 apply (auto intro: partition_le)
   139 apply (drule_tac x = n in spec)
   139 apply (drule_tac x = r in spec)
   140 apply (best intro: order_less_trans order_trans order_less_imp_le)
   140 apply arith; 
   141 done
   141 done
   142 
   142 
   143 lemma partition_lb_lt: "[| partition(a,b) D; psize D ~= 0 |] ==> a < D(Suc n)"
   143 lemma partition_lb_lt: "[| partition(a,b) D; psize D ~= 0 |] ==> a < D(Suc n)"
   144 apply (rule_tac t = a in partition_lhs [THEN subst], assumption)
   144 apply (rule_tac t = a in partition_lhs [THEN subst], assumption)
   145 apply (cut_tac x = "Suc n" and y = "psize D" in linorder_le_less_linear)
   145 apply (cut_tac x = "Suc n" and y = "psize D" in linorder_le_less_linear)
   330 apply (auto dest: partition_eq simp add: gauge_def tpart_def rsum_def)
   330 apply (auto dest: partition_eq simp add: gauge_def tpart_def rsum_def)
   331 done
   331 done
   332 
   332 
   333 lemma sumr_partition_eq_diff_bounds [simp]:
   333 lemma sumr_partition_eq_diff_bounds [simp]:
   334      "sumr 0 m (%n. D (Suc n) - D n) = D(m) - D 0"
   334      "sumr 0 m (%n. D (Suc n) - D n) = D(m) - D 0"
   335 by (induct_tac "m", auto)
   335 by (induct "m", auto)
   336 
   336 
   337 lemma Integral_eq_diff_bounds: "a \<le> b ==> Integral(a,b) (%x. 1) (b - a)"
   337 lemma Integral_eq_diff_bounds: "a \<le> b ==> Integral(a,b) (%x. 1) (b - a)"
   338 apply (auto simp add: order_le_less rsum_def Integral_def)
   338 apply (auto simp add: order_le_less rsum_def Integral_def)
   339 apply (rule_tac x = "%x. b - a" in exI)
   339 apply (rule_tac x = "%x. b - a" in exI)
   340 apply (auto simp add: gauge_def abs_interval_iff tpart_def partition)
   340 apply (auto simp add: gauge_def abs_interval_iff tpart_def partition)