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

(* Specifications: *)
Theorem handleAppendEntriesReply_votesReceived :
forall h st n t es r st' ps,
handleAppendEntriesReply h st n t es r = (st', ps) ->
votesReceived st' = votesReceived st.
Theorem handleRequestVote_log_term_type :
forall h st t c li lt st' m,
handleRequestVote h st t c li lt = (st', m) ->
(log st' = log st /\ currentTerm st' = currentTerm st /\ type st' = type st) \/
type st' = Follower.