Local Open Scope Z_scope.
Require Export List. Export ListNotations.
Require Export aes.list_utils.
Definition partially_filled(i n: Z)(f: Z -> int): list val :=
(map Vint (fill_list i f)) ++ (repeat_op_table (n-i) Vundef id).

(* Specifications: *)
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.