Proof using.
unfold update_elections_data_requestVoteReply.
intros.
repeat break_match; auto.
simpl in *. intuition.
Qed.

(* Specifications: *)
Lemma update_elections_data_requestVoteReply_leaderLogs' :
forall h h' t  st t' ll' r,
In (t', ll') (leaderLogs (update_elections_data_requestVoteReply h h' t r st)) ->
In (t', ll') (leaderLogs (fst st))
\/ (r = true
/\ t = currentTerm (snd st)
/\ ll' = log (snd st)
/\ t' = currentTerm (snd st)
/\ type (snd st) = Candidate
/\ wonElection (dedup name_eq_dec (h' :: votesReceived (snd st))) = true).
Lemma handleAppendEntriesReply_entries :
forall h st t h' pli plt es ci st' t' es',
handleAppendEntries h st t h' pli plt es ci =
(st', AppendEntriesReply t' es' true) ->
es' = es.
Lemma allEntries_log_request_vote :
refined_raft_net_invariant_request_vote allEntries_log.