(** Conversions: zero extension, sign extension, single-of-float *)

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

Lemma zero_ext_sound: forall v w x n, vagree v w (zero_ext n x) -> 0 <= n -> vagree (Val.zero_ext n v) (Val.zero_ext n w) x.