Proof using.
induction l; intros; simpl in *; try now repeat eexists; eauto.
repeat break_let. find_inversion.
find_apply_hyp_hyp.
break_exists. intuition.
repeat find_rewrite. find_inversion.
repeat eexists; eauto using app_ass.
Qed.

(* Specifications: *)
Lemma getLastId_clientCache_to_ks_assoc :
forall
(st : RaftState.raft_data term name entry logIndex serverType data clientId output)
(client : clientId) (id : nat) o,
getLastId st client = Some (id, o) ->
assoc clientId_eq_dec (clientCache_to_ks (clientCache st)) client = Some id.