Proof using.
unfold refined_raft_net_invariant_request_vote, leaderLogs_sorted.
intros.
subst. simpl in *. find_higher_order_rewrite.
update_destruct_simplify.
- unfold update_elections_data_requestVote in *.
repeat break_match; simpl in *; intuition; repeat find_inversion; eauto.
- eauto.
Qed.

(* Specifications: *)
Lemma leaderLogs_update_elections_data_request_vote_reply :
forall {h st h' t r st'},
handleRequestVoteReply h (snd st) h' t r = st' ->
forall (P : list (term * list entry) -> Prop),
(forall t, P ((t, log (snd st)) :: leaderLogs (fst st))) ->
(P (leaderLogs (fst st))) ->
(P (leaderLogs (update_elections_data_requestVoteReply h h' t r st))).