src/HOL/NSA/NSA.thy
changeset 31017 2c227493ea56
parent 30496 7cdcc9dd95cb
child 31449 27e00c983b7b
equal deleted inserted replaced
31016:e1309df633c6 31017:2c227493ea56
    99 lemma hnorm_mult:
    99 lemma hnorm_mult:
   100   "\<And>x y::'a::real_normed_div_algebra star. hnorm (x * y) = hnorm x * hnorm y"
   100   "\<And>x y::'a::real_normed_div_algebra star. hnorm (x * y) = hnorm x * hnorm y"
   101 by transfer (rule norm_mult)
   101 by transfer (rule norm_mult)
   102 
   102 
   103 lemma hnorm_hyperpow:
   103 lemma hnorm_hyperpow:
   104   "\<And>(x::'a::{real_normed_div_algebra,recpower} star) n.
   104   "\<And>(x::'a::{real_normed_div_algebra} star) n.
   105    hnorm (x pow n) = hnorm x pow n"
   105    hnorm (x pow n) = hnorm x pow n"
   106 by transfer (rule norm_power)
   106 by transfer (rule norm_power)
   107 
   107 
   108 lemma hnorm_one [simp]:
   108 lemma hnorm_one [simp]:
   109   "hnorm (1\<Colon>'a::real_normed_div_algebra star) = 1"
   109   "hnorm (1\<Colon>'a::real_normed_div_algebra star) = 1"
   302 
   302 
   303 lemma HFinite_1 [simp]: "1 \<in> HFinite"
   303 lemma HFinite_1 [simp]: "1 \<in> HFinite"
   304 unfolding star_one_def by (rule HFinite_star_of)
   304 unfolding star_one_def by (rule HFinite_star_of)
   305 
   305 
   306 lemma hrealpow_HFinite:
   306 lemma hrealpow_HFinite:
   307   fixes x :: "'a::{real_normed_algebra,recpower} star"
   307   fixes x :: "'a::{real_normed_algebra,monoid_mult} star"
   308   shows "x \<in> HFinite ==> x ^ n \<in> HFinite"
   308   shows "x \<in> HFinite ==> x ^ n \<in> HFinite"
   309 apply (induct_tac "n")
   309 apply (induct n)
   310 apply (auto simp add: power_Suc intro: HFinite_mult)
   310 apply (auto simp add: power_Suc intro: HFinite_mult)
   311 done
   311 done
   312 
   312 
   313 lemma HFinite_bounded:
   313 lemma HFinite_bounded:
   314   "[|(x::hypreal) \<in> HFinite; y \<le> x; 0 \<le> y |] ==> y \<in> HFinite"
   314   "[|(x::hypreal) \<in> HFinite; y \<le> x; 0 \<le> y |] ==> y \<in> HFinite"
   315 apply (case_tac "x \<le> 0")
   315 apply (cases "x \<le> 0")
   316 apply (drule_tac y = x in order_trans)
   316 apply (drule_tac y = x in order_trans)
   317 apply (drule_tac [2] order_antisym)
   317 apply (drule_tac [2] order_antisym)
   318 apply (auto simp add: linorder_not_le)
   318 apply (auto simp add: linorder_not_le)
   319 apply (auto intro: order_le_less_trans simp add: abs_if HFinite_def)
   319 apply (auto intro: order_le_less_trans simp add: abs_if HFinite_def)
   320 done
   320 done