diff -r 53b61706749b -r 7a6301d01199 src/HOL/Library/Word.thy --- a/src/HOL/Library/Word.thy Sat Jun 25 09:50:37 2022 +0000 +++ b/src/HOL/Library/Word.thy Sat Jun 25 09:50:40 2022 +0000 @@ -1958,6 +1958,25 @@ qed auto +subsection \Single-bit operations\ + +lemma set_bit_eq_idem_iff: + \Bit_Operations.set_bit n w = w \ bit w n \ n \ LENGTH('a)\ + for w :: \'a::len word\ + by (simp add: bit_eq_iff) (auto simp add: bit_simps not_le) + +lemma unset_bit_eq_idem_iff: + \unset_bit n w = w \ bit w n \ n \ LENGTH('a)\ + for w :: \'a::len word\ + by (simp add: bit_eq_iff) (auto simp add: bit_simps dest: bit_imp_le_length) + +lemma flip_bit_eq_idem_iff: + \flip_bit n w = w \ n \ LENGTH('a)\ + for w :: \'a::len word\ + using linorder_le_less_linear + by (simp add: bit_eq_iff) (auto simp add: bit_simps) + + subsection \Rotation\ lift_definition word_rotr :: \nat \ 'a::len word \ 'a::len word\