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

(* Specifications: *)
Lemma update_elections_data_requestVote_votedFor :
forall h h' t lli llt st st' m,
handleRequestVote h (snd st) t h' lli llt = (st', m) ->
votedFor st' = Some h' ->
In (currentTerm st', h')
(votes (update_elections_data_requestVote h h' t h' lli llt st)) \/
(votedFor st' = votedFor (snd st) /\
currentTerm st' = currentTerm (snd st)).