Proof using.
unfold doLeader, advanceCommitIndex in *.
intros.
repeat break_match; find_inversion; simpl in *; intuition.
Qed.

Lemma doGenericServer_log_type_term_votesReceived :
forall h st os st' ps,
doGenericServer h st = (os, st', ps) ->
log st' = log st /\
type st' = type st /\
currentTerm st' = currentTerm st /\
votesReceived st' = votesReceived st /\
votedFor st' = votedFor st.