Definition shruimm (x: nval) (n: int) :=
  match x with
  | Nothing => Nothing
  | I m => I (Int.shl m n)
  | All => I (Int.shl Int.mone n)
  end.

Lemma shruimm_sound: forall v w x n, vagree v w (shruimm x n) -> vagree (Val.shru v (Vint n)) (Val.shru w (Vint n)) x.