diff -r e4207dfa36b5 -r df5b2785abd6 src/HOL/Library/Word.thy --- a/src/HOL/Library/Word.thy Fri Apr 18 14:19:41 2025 +0200 +++ b/src/HOL/Library/Word.thy Sat Apr 19 17:39:06 2025 +0200 @@ -759,10 +759,8 @@ for a :: \'a::len word\ proof (cases \2 \ LENGTH('a::len)\) case False - have \of_bool (odd k) < (1 :: int) \ even k\ for k :: int - by auto - with False that show ?thesis - by transfer (simp add: eq_iff) + with that show ?thesis + by transfer simp next case True obtain n where length: \LENGTH('a) = Suc n\ @@ -1245,9 +1243,7 @@ lemma signed_push_bit_eq: \signed (push_bit n w) = signed_take_bit (LENGTH('b) - Suc 0) (push_bit n (signed w :: 'a))\ for w :: \'b::len word\ - apply (simp add: bit_eq_iff bit_simps possible_bit_less_imp min_less_iff_disj) - apply (cases n, simp_all add: min_def) - done + by (simp add: bit_eq_iff bit_simps possible_bit_less_imp min_less_iff_disj) auto lemma signed_take_bit_eq: \signed (take_bit n w) = (if n < LENGTH('b) then take_bit n (signed w) else signed w)\ @@ -1729,6 +1725,14 @@ \x x <=s y \ x \ y\ by (fact signed.less_le) +lemma minus_1_sless_0 [simp]: + \- 1 + by transfer simp + +lemma minus_1_sless_eq_0 [simp]: + \- 1 \s 0\ + by transfer simp + subsection \Bit-wise operations\