src/HOL/Analysis/ex/Approximations.thy
changeset 70817 dd675800469d
parent 70114 089c17514794
child 72222 01397b6e5eb0
--- a/src/HOL/Analysis/ex/Approximations.thy	Wed Oct 09 23:00:52 2019 +0200
+++ b/src/HOL/Analysis/ex/Approximations.thy	Wed Oct 09 14:51:54 2019 +0000
@@ -114,7 +114,7 @@
     from assms have "(\<lambda>k. (x^n / fact n) * (x / 2)^k) sums ((x^n / fact n) * (1 / (1 - x / 2)))"
       by (intro sums_mult geometric_sums) simp_all
     also from assms have "((x^n / fact n) * (1 / (1 - x / 2))) = (2 * x^n / (2 - x)) / fact n"
-      by (auto simp: divide_simps)
+      by (auto simp: field_split_simps)
     finally have "(\<lambda>k. (x^n / fact n) * (x / 2)^k) sums \<dots>" .
   }
   ultimately show "(exp x - approx) \<le> (2 * x^n / (2 - x)) / fact n"
@@ -130,7 +130,7 @@
 proof -
   from assms have "x^n / (2 - x) \<le> x^n / 1" by (intro frac_le) simp_all 
   hence "(2 * x^n / (2 - x)) / fact n \<le> 2 * x^n / fact n"
-    using assms by (simp add: divide_simps)
+    using assms by (simp add: field_split_simps)
   with exp_approx[of n x] assms
     have "exp (x::real) - (\<Sum>k<n. x^k / fact k) \<in> {0..2 * x^n / fact n}" by simp
   moreover have "(\<Sum>k\<le>n. x^k / fact k) = (\<Sum>k<n. x^k / fact k) + x ^ n / fact n"
@@ -152,7 +152,7 @@
 proof -
   from assms have "\<bar>exp x - (\<Sum>k\<le>n. x ^ k / fact k)\<bar> \<le> x ^ n / fact n"
     by (rule exp_approx')
-  also from assms have "\<dots> \<le> 1 / fact n" by (simp add: divide_simps power_le_one)
+  also from assms have "\<dots> \<le> 1 / fact n" by (simp add: field_split_simps power_le_one)
   finally show ?thesis .
 qed
 
@@ -169,7 +169,7 @@
 
 lemma exp_1_approx:
   "n > 0 \<Longrightarrow> \<bar>exp (1::real) - euler_approx n\<bar> \<le> 1 / fact n"
-  using exp_approx''[of n 1] by (simp add: euler_approx_def divide_simps)
+  using exp_approx''[of n 1] by (simp add: euler_approx_def field_split_simps)
 
 text \<open>
   The following allows us to compute the numerator and the denominator of the result
@@ -282,7 +282,7 @@
   also have "2 * y * (\<Sum>k<n. inverse (real (2 * k + 1)) * y\<^sup>2 ^ k) = 
                (\<Sum>k<n. 2 * y^(2*k+1) / (real (2 * k + 1)))"
     by (subst sum_distrib_left, simp, subst power_mult) 
-       (simp_all add: divide_simps mult_ac power_mult)
+       (simp_all add: field_split_simps mult_ac power_mult)
   finally show ?case by (simp only: d_def y_def approx_def) 
 qed
 
@@ -629,17 +629,17 @@
     (is "_ \<in> {-?l..?u1 + ?u2}")
     apply ((rule combine_bounds(1,2))+; (rule combine_bounds(3); (rule arctan_approx)?)?)
     apply (simp_all add: n)
-    apply (simp_all add: divide_simps)?
+    apply (simp_all add: field_split_simps)?
     done
   also {
     have "?l \<le> (1/8) * (1/2)^(46*n)"
-      unfolding power_mult by (intro mult_mono power_mono) (simp_all add: divide_simps)
+      unfolding power_mult by (intro mult_mono power_mono) (simp_all add: field_split_simps)
     also have "\<dots> \<le> (1/2) ^ (46 * n - 1)"
-      by (cases n; simp_all add: power_add divide_simps)
+      by (cases n; simp_all add: power_add field_split_simps)
     finally have "?l \<le> (1/2) ^ (46 * n - 1)" .
     moreover {
       have "?u1 + ?u2 \<le> 4 * (1/2)^(48*n) + 1 * (1/2)^(46*n)"
-        unfolding power_mult by (intro add_mono mult_mono power_mono) (simp_all add: divide_simps)
+        unfolding power_mult by (intro add_mono mult_mono power_mono) (simp_all add: field_split_simps)
       also from \<open>n > 0\<close> have "4 * (1/2::real)^(48*n) \<le> (1/2)^(46*n)"
         by (cases n) (simp_all add: field_simps power_add)
       also from \<open>n > 0\<close> have "(1/2::real) ^ (46 * n) + 1 * (1 / 2) ^ (46 * n) = (1/2) ^ (46 * n - 1)"
@@ -650,7 +650,7 @@
       by (subst atLeastatMost_subset_iff) simp_all
   }
   finally have "\<bar>pi - pi_approx2 n\<bar> \<le> ((1/2) ^ (46 * n - 1))" by auto
-  thus ?thesis by (simp add: divide_simps)
+  thus ?thesis by (simp add: field_split_simps)
 qed
 
 lemma pi_approx2':