src/HOL/Hyperreal/NSA.thy
changeset 15003 6145dd7538d7
parent 14653 0848ab6fe5fc
child 15131 c69542757a4d
equal deleted inserted replaced
15002:bc050f23c3f8 15003:6145dd7538d7
   403 
   403 
   404 lemma not_Infinitesimal_not_zero2: "x \<in> HFinite - Infinitesimal ==> x \<noteq> 0"
   404 lemma not_Infinitesimal_not_zero2: "x \<in> HFinite - Infinitesimal ==> x \<noteq> 0"
   405 by auto
   405 by auto
   406 
   406 
   407 lemma Infinitesimal_hrabs_iff: "(abs x \<in> Infinitesimal) = (x \<in> Infinitesimal)"
   407 lemma Infinitesimal_hrabs_iff: "(abs x \<in> Infinitesimal) = (x \<in> Infinitesimal)"
   408 by (auto simp add: hrabs_def)
   408 by (auto simp add: abs_if)
   409 declare Infinitesimal_hrabs_iff [iff]
   409 declare Infinitesimal_hrabs_iff [iff]
   410 
   410 
   411 lemma HFinite_diff_Infinitesimal_hrabs:
   411 lemma HFinite_diff_Infinitesimal_hrabs:
   412      "x \<in> HFinite - Infinitesimal ==> abs x \<in> HFinite - Infinitesimal"
   412      "x \<in> HFinite - Infinitesimal ==> abs x \<in> HFinite - Infinitesimal"
   413 by blast
   413 by blast
   843 by (blast intro: Infinitesimal_less_SReal)
   843 by (blast intro: Infinitesimal_less_SReal)
   844 
   844 
   845 lemma SReal_not_Infinitesimal:
   845 lemma SReal_not_Infinitesimal:
   846      "[| 0 < y;  y \<in> Reals|] ==> y \<notin> Infinitesimal"
   846      "[| 0 < y;  y \<in> Reals|] ==> y \<notin> Infinitesimal"
   847 apply (simp add: Infinitesimal_def)
   847 apply (simp add: Infinitesimal_def)
   848 apply (auto simp add: hrabs_def)
   848 apply (auto simp add: abs_if)
   849 done
   849 done
   850 
   850 
   851 lemma SReal_minus_not_Infinitesimal:
   851 lemma SReal_minus_not_Infinitesimal:
   852      "[| y < 0;  y \<in> Reals |] ==> y \<notin> Infinitesimal"
   852      "[| y < 0;  y \<in> Reals |] ==> y \<notin> Infinitesimal"
   853 apply (subst Infinitesimal_minus_iff [symmetric])
   853 apply (subst Infinitesimal_minus_iff [symmetric])
  1322      "[| x \<in> HInfinite; y \<in> HFinite - Infinitesimal |]
  1322      "[| x \<in> HInfinite; y \<in> HFinite - Infinitesimal |]
  1323       ==> y * x \<in> HInfinite"
  1323       ==> y * x \<in> HInfinite"
  1324 by (auto simp add: hypreal_mult_commute HInfinite_HFinite_not_Infinitesimal_mult)
  1324 by (auto simp add: hypreal_mult_commute HInfinite_HFinite_not_Infinitesimal_mult)
  1325 
  1325 
  1326 lemma HInfinite_gt_SReal: "[| x \<in> HInfinite; 0 < x; y \<in> Reals |] ==> y < x"
  1326 lemma HInfinite_gt_SReal: "[| x \<in> HInfinite; 0 < x; y \<in> Reals |] ==> y < x"
  1327 by (auto dest!: bspec simp add: HInfinite_def hrabs_def order_less_imp_le)
  1327 by (auto dest!: bspec simp add: HInfinite_def abs_if order_less_imp_le)
  1328 
  1328 
  1329 lemma HInfinite_gt_zero_gt_one: "[| x \<in> HInfinite; 0 < x |] ==> 1 < x"
  1329 lemma HInfinite_gt_zero_gt_one: "[| x \<in> HInfinite; 0 < x |] ==> 1 < x"
  1330 by (auto intro: HInfinite_gt_SReal)
  1330 by (auto intro: HInfinite_gt_SReal)
  1331 
  1331 
  1332 
  1332