Ltac start_unchanged :=
    red; intros; eapply one_leaderLog_per_term_unchanged; eauto; subst.(* solve invariant by lemma which shows leader logs do not change *)
  Ltac unchanged lem :=
    start_unchanged; apply lem.

Lemma update_elections_data_requestVoteReply_leaderLogs' : forall h h' t st t' ll' r, In (t', ll') (leaderLogs (update_elections_data_requestVoteReply h h' t r st)) -> In (t', ll') (leaderLogs (fst st)) \/ (r = true /\ t = currentTerm (snd st) /\ ll' = log (snd st) /\ t' = currentTerm (snd st) /\ type (snd st) = Candidate /\ wonElection (dedup name_eq_dec (h' :: votesReceived (snd st))) = true).