src/HOL/Real.thy
changeset 56536 aefb4a8da31f
parent 56217 dc429a5b13c4
child 56541 0e3abadbef39
equal deleted inserted replaced
56535:34023a586608 56536:aefb4a8da31f
   331     hence "\<bar>inverse (X n) - inverse (Y n)\<bar> =
   331     hence "\<bar>inverse (X n) - inverse (Y n)\<bar> =
   332         inverse \<bar>X n\<bar> * \<bar>X n - Y n\<bar> * inverse \<bar>Y n\<bar>"
   332         inverse \<bar>X n\<bar> * \<bar>X n - Y n\<bar> * inverse \<bar>Y n\<bar>"
   333       by (simp add: inverse_diff_inverse abs_mult)
   333       by (simp add: inverse_diff_inverse abs_mult)
   334     also have "\<dots> < inverse a * s * inverse b"
   334     also have "\<dots> < inverse a * s * inverse b"
   335       apply (intro mult_strict_mono' less_imp_inverse_less)
   335       apply (intro mult_strict_mono' less_imp_inverse_less)
   336       apply (simp_all add: a b i j k n mult_nonneg_nonneg)
   336       apply (simp_all add: a b i j k n)
   337       done
   337       done
   338     also note `inverse a * s * inverse b = r`
   338     also note `inverse a * s * inverse b = r`
   339     finally show "\<bar>inverse (X n) - inverse (Y n)\<bar> < r" .
   339     finally show "\<bar>inverse (X n) - inverse (Y n)\<bar> < r" .
   340   qed
   340   qed
   341   thus "\<exists>k. \<forall>n\<ge>k. \<bar>inverse (X n) - inverse (Y n)\<bar> < r" ..
   341   thus "\<exists>k. \<forall>n\<ge>k. \<bar>inverse (X n) - inverse (Y n)\<bar> < r" ..
  1925 qed
  1925 qed
  1926 
  1926 
  1927 lemma le_mult_natfloor:
  1927 lemma le_mult_natfloor:
  1928   shows "natfloor a * natfloor b \<le> natfloor (a * b)"
  1928   shows "natfloor a * natfloor b \<le> natfloor (a * b)"
  1929   by (cases "0 <= a & 0 <= b")
  1929   by (cases "0 <= a & 0 <= b")
  1930     (auto simp add: le_natfloor_eq mult_nonneg_nonneg mult_mono' real_natfloor_le natfloor_neg)
  1930     (auto simp add: le_natfloor_eq mult_mono' real_natfloor_le natfloor_neg)
  1931 
  1931 
  1932 lemma natceiling_zero [simp]: "natceiling 0 = 0"
  1932 lemma natceiling_zero [simp]: "natceiling 0 = 0"
  1933   by (unfold natceiling_def, simp)
  1933   by (unfold natceiling_def, simp)
  1934 
  1934 
  1935 lemma natceiling_one [simp]: "natceiling 1 = 1"
  1935 lemma natceiling_one [simp]: "natceiling 1 = 1"