Corollary upd_init_const : forall {A} i b (v v' : A), 0 <= i < b ->
  upd_Znth i (repeat v' (Z.to_nat i) ++ repeat v (Z.to_nat (b - i))) v' =
  repeat v' (Z.to_nat (i + 1)) ++ repeat v (Z.to_nat (b - (i + 1))).

Lemma list_nth_error_eq : forall {A} (l1 l2 : list A) (Heq : forall j, nth_error l1 j = nth_error l2 j), l1 = l2.