Proof using.
red. unfold votesReceived_moreUpToDate. intros. simpl in *.
subst. repeat find_higher_order_rewrite.
destruct_update; simpl in *; eauto.
- find_eapply_lem_hyp update_elections_data_timeout_votesWithLog_votesReceived; eauto.
intuition; try congruence.
repeat find_rewrite. simpl in *. intuition. subst.
exists (log d). intuition. auto using moreUpToDate_refl.
- find_eapply_lem_hyp update_elections_data_timeout_votesWithLog_votesReceived; eauto.
intuition; try congruence.
repeat find_rewrite. simpl in *. intuition.
- eapply_prop_hyp Candidate Candidate; eauto.
break_exists_exists. intuition.
apply update_elections_data_timeout_votesWithLog_old.
try rewrite <- plus_n_O in *. auto.
Qed.

(* Specifications: *)
Lemma votesReceived_moreUpToDate_client_request :
refined_raft_net_invariant_client_request votesReceived_moreUpToDate.