Remark eq_same_bits:
forall i x y, x = y -> Int.testbit x i = Int.testbit y i.

Lemma iagree_bitwise_binop:
forall sem f,
(forall x y i, 0 <= i < Int.zwordsize ->
Int.testbit (f x y) i = sem (Int.testbit x i) (Int.testbit y i)) ->
forall x1 x2 y1 y2 m,
iagree x1 y1 m -> iagree x2 y2 m -> iagree (f x1 x2) (f y1 y2) m.