Definition sign_ext_redundant (n: Z) (x: nval) :=
  match x with
  | Nothing => true
  | I m => Int.eq_dec (Int.zero_ext n m) m
  | _ => false
  end.

Lemma sign_ext_redundant_sound: forall v w x n, sign_ext_redundant n x = true -> vagree v w (sign_ext n x) -> 0 < n -> vagree (Val.sign_ext n v) w x.