Proof using.
start.
eapply candidateEntries_ext; eauto.
find_higher_order_rewrite.
assert (candidateEntries e (nwState net)).
{ update_destruct; rewrite_update; simpl in *.
- assert (In (t, ll) (leaderLogs (fst (nwState net h)))) by (repeat find_rewrite; eauto). eauto.
- eauto. }
unfold candidateEntries in *.
break_exists; break_and.
exists x.
update_destruct; rewrite_update; [|auto].
simpl. split.
- assert (gd = fst (nwState net h)). { repeat find_rewrite. simpl. auto. }
subst. auto.
- find_apply_lem_hyp doLeader_type.
break_and. find_rewrite. repeat find_rewrite.
auto.
Qed.

Lemma leaderLogs_candidateEntries_do_generic_server :
refined_raft_net_invariant_do_generic_server leaderLogs_candidateEntries.