Proof using.
unfold update_elections_data_requestVote.
intros.
repeat break_match; repeat tuple_inversion; simpl; auto.
Qed.

Lemma update_elections_data_timeout_votes_intro_new :
forall h st out st' ps t' h',
handleTimeout h (snd st) = (out, st', ps) ->
(forall t h,
t = currentTerm (snd st) ->
votedFor (snd st) = Some h ->
In (t, h) (votes (fst st))) ->
t' = currentTerm st' ->
votedFor st' = Some h' ->
In (t', h') (votes (update_elections_data_timeout h st)).