Definition partially_filled(i n: Z)(f: Z -> int): list val := 
  (map Vint (fill_list i f)) ++ (repeat_op_table (n-i) Vundef id).

Lemma update_partially_filled: forall (i: Z) (f: Z -> int) (l: Z), 0 <= i < l -> upd_Znth i (partially_filled i l f) (Vint (f i)) = partially_filled (i+1) l f.