Proof using.
intros.
unfold handleRequestVote, advanceCurrentTerm in *.
repeat break_match; find_inversion; simpl in *; do_bool; auto.
Qed.

(* Specifications: *)
Lemma votesWithLog_update_elections_data_request_vote :
forall net h t src lli llt st' m t' h' l',
refined_raft_intermediate_reachable net ->
handleRequestVote h (snd (nwState net h)) t src lli llt = (st', m) ->
In (t', h', l') (votesWithLog (update_elections_data_requestVote h src t src lli llt (nwState net h))) ->
In (t', h', l') (votesWithLog (fst (nwState net h))) \/
(t' = currentTerm st' /\
l' = log st' /\
(leaderId (snd (nwState net h)) = None \/
currentTerm (snd (nwState net h)) < currentTerm st')).