Proof using.
red. unfold allEntries_votesWithLog. intros. simpl in *.
repeat find_higher_order_rewrite.
destruct_update; simpl in *.
- find_rewrite_lem update_elections_data_requestVoteReply_allEntries.
find_eapply_lem_hyp votesWithLog_update_elections_data_request_vote_reply; eauto.
eapply_prop_hyp votesWithLog votesWithLog; eauto; intuition;
right; break_exists_exists; intuition;
find_higher_order_rewrite; destruct_update; simpl in *; auto.
eauto using update_elections_data_requestVoteReply_old.
- eapply_prop_hyp votesWithLog votesWithLog; eauto; intuition;
right; break_exists_exists; intuition;
find_higher_order_rewrite; destruct_update; simpl in *; auto.
eauto using update_elections_data_requestVoteReply_old.
Qed.

(* Specifications: *)
Lemma update_elections_data_client_request_allEntries_in_or_term :
forall h st client id c out st' ms t e,
handleClientRequest h (snd st) client id c = (out, st', ms) ->
In (t, e) (allEntries (update_elections_data_client_request h st client id c)) ->
In (t, e) (allEntries (fst st)) \/
t = currentTerm (snd st).