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

(* Specifications: *)
Theorem handleRequestVote_votesReceived :
forall h st t c li lt st' m,
handleRequestVote h st t c li lt = (st', m) ->
votesReceived st' = votesReceived st.
Theorem handleRequestVoteReply_log_term_type :
forall h st t h' r st',
type st' = Candidate ->
handleRequestVoteReply h st h' t r = st' ->
(log st' = log st /\ currentTerm st' = currentTerm st /\ type st' = type st).