Proof using.
red. unfold leaderLogs_votesWithLog. intros. simpl in *.
subst. repeat find_higher_order_rewrite.
destruct_update; simpl in *; eauto.
- find_rewrite_lem leaderLogs_update_elections_data_requestVote.
eapply quorum_preserved; [|eauto].
intros.
find_higher_order_rewrite; destruct_update; simpl in *;
eauto using update_elections_data_request_vote_votesWithLog_old.
- eapply quorum_preserved; [|eauto].
intros.
find_higher_order_rewrite; destruct_update; simpl in *;
eauto using update_elections_data_request_vote_votesWithLog_old.
Qed.

(* Specifications: *)
Lemma wonElection_dedup_spec :
forall l,
wonElection (dedup name_eq_dec l) = true ->
exists quorum,
NoDup quorum /\
length quorum > div2 (length nodes) /\
(forall h, In h quorum -> In h l).