Proof using.
unfold refined_raft_net_invariant_request_vote, cronies_term.
intros. subst. simpl in *. repeat find_higher_order_rewrite.
update_destruct; subst; rewrite_update; eauto.
simpl in *.
find_apply_lem_hyp handleRequestVote_spec.
find_eapply_lem_hyp update_elections_data_requestVote_spec; eauto.
eapply le_trans; [|eauto]; eauto.
Qed.

Lemma handleRequestVoteReply_spec :
forall h st h' t v st',
st' = handleRequestVoteReply h st h' t v ->
currentTerm st' = currentTerm st \/
(currentTerm st <= currentTerm st' /\
type st' = Follower).