(* a list initialized with 0 except its last i elements *)
Definition list_zero_except (i : Z) (size : Z) : list val :=
  (list_repeat (Z.to_nat (size-i)) (Vint Int.zero)) ++ (list_repeat (Z.to_nat i) Vundef).

Lemma list_zero_except_zero: forall size, list_zero_except 0 size = list_repeat (Z.to_nat size) (Vint Int.zero).