diff -r 408e15cbd2a6 -r e5cd5471c18a src/HOL/Library/Float.thy --- a/src/HOL/Library/Float.thy Fri Jun 14 08:34:28 2019 +0000 +++ b/src/HOL/Library/Float.thy Fri Jun 14 08:34:28 2019 +0000 @@ -495,10 +495,10 @@ by (auto simp: mantissa_exponent sign_simps) lemma mantissa_nonneg_iff: "0 \ mantissa x \ 0 \ x" - by (auto simp: mantissa_exponent sign_simps zero_le_mult_iff) + by (auto simp: mantissa_exponent sign_simps) lemma mantissa_neg_iff: "0 > mantissa x \ 0 > x" - by (auto simp: mantissa_exponent sign_simps zero_le_mult_iff) + by (auto simp: mantissa_exponent sign_simps) lemma fixes m e :: int @@ -1788,8 +1788,8 @@ using truncate_down_uminus_eq[of p "x + y"] by transfer (simp add: plus_down_def plus_up_def ac_simps) -lemma mantissa_zero[simp]: "mantissa 0 = 0" - by (metis mantissa_0 zero_float.abs_eq) +lemma mantissa_zero: "mantissa 0 = 0" + by (fact mantissa_0) qualified lemma compute_float_less[code]: "a < b \ is_float_pos (float_plus_down 0 b (- a))" using truncate_down[of 0 "b - a"] truncate_down_pos[of "b - a" 0] @@ -1972,8 +1972,10 @@ from assms \0 < x\ have "log 2 x \ log 2 y" by auto with \\log 2 x\ \ \log 2 y\\ - have logless: "log 2 x < log 2 y" and flogless: "\log 2 x\ < \log 2 y\" - by (metis floor_less_cancel linorder_cases not_le)+ + have logless: "log 2 x < log 2 y" + by linarith + have flogless: "\log 2 x\ < \log 2 y\" + using \\log 2 x\ \ \log 2 y\\ \log 2 x \ log 2 y\ by linarith have "truncate_up prec x = real_of_int \x * 2 powr real_of_int (int prec - \log 2 x\ )\ * 2 powr - real_of_int (int prec - \log 2 x\)" using assms by (simp add: truncate_up_def round_up_def)