Proof using rvrmutdi.
red. unfold votesReceived_moreUpToDate. intros. simpl in *.
subst. repeat find_higher_order_rewrite.
destruct_update; simpl in *; eauto.
- erewrite handleRequestVoteReply_log; eauto.
find_copy_eapply_lem_hyp handleRequestVoteReply_log_term_type; eauto.
intuition.
repeat find_rewrite.
find_apply_lem_hyp handleRequestVoteReply_votesReceived.
rewrite update_elections_data_request_vote_reply_votesWithLog.
intuition; eauto.
repeat find_rewrite. subst.
find_eapply_lem_hyp requestVoteReply_moreUpToDate_invariant; eauto.
- erewrite handleRequestVoteReply_log; eauto.
find_copy_eapply_lem_hyp handleRequestVoteReply_log_term_type; eauto.
intuition.
repeat find_rewrite.
find_apply_lem_hyp handleRequestVoteReply_votesReceived.
intuition; eauto.
repeat find_rewrite. subst.
find_eapply_lem_hyp requestVoteReply_moreUpToDate_invariant; eauto.
- rewrite update_elections_data_request_vote_reply_votesWithLog.
eauto.
Qed.

(* Specifications: *)
Lemma votesReceived_moreUpToDate_timeout :
refined_raft_net_invariant_timeout votesReceived_moreUpToDate.