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.