Proof using.
unfold update_elections_data_appendEntries.
intros. repeat break_match; repeat tuple_inversion; intuition.
Qed.

Lemma votesWithLog_update_elections_data_request_vote :
forall h st t src lli llt st' m t' h' l',
handleRequestVote h (snd st) t src lli llt = (st', m) ->
In (t', h', l') (votesWithLog (update_elections_data_requestVote h src t src lli llt st)) ->
In (t', h', l') (votesWithLog (fst st)) \/
(t' = currentTerm st' /\
l' = log st').