Section Logs.
(* A log is a map from nat, and a finite log has a latest element. *)
Context {B : Type}.
Local Close Scope Z.
Definition log_latest s (v1 : nat) (v2 : B) := s v1 = Some v2 /\ forall v', v1 < v' -> s v' = None.
End Logs.

Lemma map_Znth_log_latest : forall {B} {d : Inhabitant B} m k (v : list B) i, log_latest m k v ->
log_latest (map_Znth i m) k (Znth i v).