Proof using.
red. unfold allEntries_log in *. intros. simpl in *.
repeat find_higher_order_rewrite.
destruct_update; simpl in *;
try (find_copy_eapply_lem_hyp update_elections_data_client_request_allEntries'; eauto; [idtac]);
intuition;
find_copy_apply_lem_hyp handleClientRequest_log;
find_apply_lem_hyp handleClientRequest_currentTerm_leaderId;
intuition;
try break_exists; intuition; repeat find_rewrite; intuition; simpl in *;
find_apply_hyp_hyp; intuition; repeat right;
break_exists_exists; intuition;
repeat find_higher_order_rewrite;
destruct_update; simpl in *; auto;
rewrite update_elections_data_client_request_leaderLogs; auto.
Qed.

(* Specifications: *)
Lemma handleTimeout_currentTerm_leaderId :
forall h st out st' ms,
handleTimeout h st = (out, st', ms) ->
currentTerm st < currentTerm st' \/
currentTerm st' = currentTerm st /\ leaderId st' = leaderId st.