Proof using.
intros. unfold wonElection in *. do_bool.
cut (exists h, In h (dedup name_eq_dec l) /\ In h (dedup name_eq_dec l'));
[intros; break_exists; exists x; intuition eauto using in_dedup_was_in|].
eapply pigeon with (l := nodes); eauto using all_fin_all, all_fin_NoDup, NoDup_dedup, name_eq_dec, div2_correct.
Qed.

Lemma execute_log'_app :
forall xs ys st tr,
execute_log' (xs ++ ys) st tr =
let (tr', st') := execute_log' xs st tr in
execute_log' ys st' tr'.