src/HOL/Hyperreal/HTranscendental.thy
changeset 23096 423ad2fe9f76
parent 22983 3314057c3b57
child 23114 1bd84606b403
equal deleted inserted replaced
23095:45f10b70e891 23096:423ad2fe9f76
    85 
    85 
    86 lemma hypreal_sqrt_sum_squares [simp]:
    86 lemma hypreal_sqrt_sum_squares [simp]:
    87      "(( *f* sqrt)(x*x + y*y + z*z) @= 0) = (x*x + y*y + z*z @= 0)"
    87      "(( *f* sqrt)(x*x + y*y + z*z) @= 0) = (x*x + y*y + z*z @= 0)"
    88 apply (rule hypreal_sqrt_approx_zero2)
    88 apply (rule hypreal_sqrt_approx_zero2)
    89 apply (rule add_nonneg_nonneg)+
    89 apply (rule add_nonneg_nonneg)+
    90 apply (auto simp add: zero_le_square)
    90 apply (auto)
    91 done
    91 done
    92 
    92 
    93 lemma hypreal_sqrt_sum_squares2 [simp]:
    93 lemma hypreal_sqrt_sum_squares2 [simp]:
    94      "(( *f* sqrt)(x*x + y*y) @= 0) = (x*x + y*y @= 0)"
    94      "(( *f* sqrt)(x*x + y*y) @= 0) = (x*x + y*y @= 0)"
    95 apply (rule hypreal_sqrt_approx_zero2)
    95 apply (rule hypreal_sqrt_approx_zero2)
    96 apply (rule add_nonneg_nonneg)
    96 apply (rule add_nonneg_nonneg)
    97 apply (auto simp add: zero_le_square)
    97 apply (auto)
    98 done
    98 done
    99 
    99 
   100 lemma hypreal_sqrt_gt_zero: "!!x. 0 < x ==> 0 < ( *f* sqrt)(x)"
   100 lemma hypreal_sqrt_gt_zero: "!!x. 0 < x ==> 0 < ( *f* sqrt)(x)"
   101 apply transfer
   101 apply transfer
   102 apply (auto intro: real_sqrt_gt_zero)
   102 apply (auto intro: real_sqrt_gt_zero)
   155 
   155 
   156 lemma HFinite_sqrt_sum_squares [simp]:
   156 lemma HFinite_sqrt_sum_squares [simp]:
   157      "(( *f* sqrt)(x*x + y*y) \<in> HFinite) = (x*x + y*y \<in> HFinite)"
   157      "(( *f* sqrt)(x*x + y*y) \<in> HFinite) = (x*x + y*y \<in> HFinite)"
   158 apply (rule HFinite_hypreal_sqrt_iff)
   158 apply (rule HFinite_hypreal_sqrt_iff)
   159 apply (rule add_nonneg_nonneg)
   159 apply (rule add_nonneg_nonneg)
   160 apply (auto simp add: zero_le_square)
   160 apply (auto)
   161 done
   161 done
   162 
   162 
   163 lemma Infinitesimal_hypreal_sqrt:
   163 lemma Infinitesimal_hypreal_sqrt:
   164      "[| 0 \<le> x; x \<in> Infinitesimal |] ==> ( *f* sqrt) x \<in> Infinitesimal"
   164      "[| 0 \<le> x; x \<in> Infinitesimal |] ==> ( *f* sqrt) x \<in> Infinitesimal"
   165 apply (auto simp add: order_le_less)
   165 apply (auto simp add: order_le_less)
   182 
   182 
   183 lemma Infinitesimal_sqrt_sum_squares [simp]:
   183 lemma Infinitesimal_sqrt_sum_squares [simp]:
   184      "(( *f* sqrt)(x*x + y*y) \<in> Infinitesimal) = (x*x + y*y \<in> Infinitesimal)"
   184      "(( *f* sqrt)(x*x + y*y) \<in> Infinitesimal) = (x*x + y*y \<in> Infinitesimal)"
   185 apply (rule Infinitesimal_hypreal_sqrt_iff)
   185 apply (rule Infinitesimal_hypreal_sqrt_iff)
   186 apply (rule add_nonneg_nonneg)
   186 apply (rule add_nonneg_nonneg)
   187 apply (auto simp add: zero_le_square)
   187 apply (auto)
   188 done
   188 done
   189 
   189 
   190 lemma HInfinite_hypreal_sqrt:
   190 lemma HInfinite_hypreal_sqrt:
   191      "[| 0 \<le> x; x \<in> HInfinite |] ==> ( *f* sqrt) x \<in> HInfinite"
   191      "[| 0 \<le> x; x \<in> HInfinite |] ==> ( *f* sqrt) x \<in> HInfinite"
   192 apply (auto simp add: order_le_less)
   192 apply (auto simp add: order_le_less)
   209 
   209 
   210 lemma HInfinite_sqrt_sum_squares [simp]:
   210 lemma HInfinite_sqrt_sum_squares [simp]:
   211      "(( *f* sqrt)(x*x + y*y) \<in> HInfinite) = (x*x + y*y \<in> HInfinite)"
   211      "(( *f* sqrt)(x*x + y*y) \<in> HInfinite) = (x*x + y*y \<in> HInfinite)"
   212 apply (rule HInfinite_hypreal_sqrt_iff)
   212 apply (rule HInfinite_hypreal_sqrt_iff)
   213 apply (rule add_nonneg_nonneg)
   213 apply (rule add_nonneg_nonneg)
   214 apply (auto simp add: zero_le_square)
   214 apply (auto)
   215 done
   215 done
   216 
   216 
   217 lemma HFinite_exp [simp]:
   217 lemma HFinite_exp [simp]:
   218      "sumhr (0, whn, %n. inverse (real (fact n)) * x ^ n) \<in> HFinite"
   218      "sumhr (0, whn, %n. inverse (real (fact n)) * x ^ n) \<in> HFinite"
   219 unfolding sumhr_app
   219 unfolding sumhr_app