Proof using.
unfold refined_raft_net_invariant_do_leader, cronies_term.
intros. subst. simpl in *. repeat find_higher_order_rewrite.
update_destruct; subst; rewrite_update; eauto.
simpl in *.
find_apply_lem_hyp doLeader_spec.
repeat find_rewrite.
match goal with
| H : nwState ?net ?h = (?g, ?st) |- _ =>
replace g with (fst (nwState net h)) in *; [|rewrite H; auto];
replace st with (snd (nwState net h)) in *; [|rewrite H; auto]
end; eauto.
Qed.

Lemma doGenericServer_spec :
forall st h os st' ms,
doGenericServer h st = (os, st', ms) ->
currentTerm st' = currentTerm st.