(** Bitwise operations: and, or, xor, not *)
Definition bitwise (x: nval) := x.
Remark bitwise_idem: forall nv, bitwise (bitwise nv) = bitwise nv.

(* Specifications: *)
Lemma and_sound:
forall v1 w1 v2 w2 x,
vagree v1 w1 (bitwise x) -> vagree v2 w2 (bitwise x) ->
vagree (Val.and v1 v2) (Val.and w1 w2) x.