Proof using.
red. unfold votedFor_moreUpToDate. intros. simpl in *.
match goal with
| H : nwState ?net ?h = (?gd, ?d) |- _ =>
replace gd with (fst (nwState net h)) in * by (rewrite H; reflexivity);
replace d with (snd (nwState net h)) in * by (rewrite H; reflexivity);
clear H
end.
subst. repeat find_higher_order_rewrite.
destruct_update_hyp; simpl in *; eauto;
try solve [find_apply_lem_hyp doLeader_candidate; subst; eauto].
find_apply_lem_hyp doLeader_term_votedFor.
intuition; repeat find_rewrite; eauto.
Qed.

Lemma votedFor_moreUpToDate_do_generic_server :
refined_raft_net_invariant_do_generic_server votedFor_moreUpToDate.