Proof using vftsi.
red. unfold votedFor_moreUpToDate. intros. simpl in *.
subst. repeat find_higher_order_rewrite.
destruct_update_hyp; simpl in *; eauto.
- find_copy_apply_lem_hyp handleTimeout_log_same.
find_copy_eapply_lem_hyp update_elections_data_timeout_votedFor; eauto.
intuition; repeat find_rewrite; eauto.
simpl. eauto using moreUpToDate_refl.
- find_copy_eapply_lem_hyp update_elections_data_timeout_votedFor; eauto.
intuition; [repeat find_rewrite; eauto|].
subst. omega.
- find_copy_apply_lem_hyp handleTimeout_log_same.
find_apply_lem_hyp update_elections_data_timeout_votesWithLog_votesReceived.
intuition; try congruence.
find_copy_apply_lem_hyp votedFor_term_sanity_invariant.
eapply_prop_hyp votedFor_term_sanity RaftState.votedFor; eauto.
unfold raft_data in *; simpl in *; unfold raft_data in *; simpl in *.
omega.
Qed.

(* Specifications: *)
Lemma votedFor_moreUpToDate_client_request :
refined_raft_net_invariant_client_request votedFor_moreUpToDate.