Proof using.
unfold doGenericServer.
intros.
repeat break_match; repeat find_inversion;
use_applyEntries_spec; subst; simpl in *;
auto.
Qed.

Lemma doLeader_type :
forall st h os st' ms,
doLeader st h = (os, st', ms) ->
type st' = type st /\ currentTerm st' = currentTerm st /\ log st' = log st.