Proof using.
start.
find_copy_apply_lem_hyp handleClientRequest_type.
intuition; try congruence;
rewrite update_elections_data_client_request_leaderLogs.
- repeat find_rewrite. eauto.
- break_exists. intuition. repeat find_rewrite.
match goal with
| h : name, H : forall _, type _ =  type _ -> _ |- _ =>
specialize (H h); concludes
end.
break_exists.
match goal with
| _ : context [log _ = ?l1 ++ ?l2] |- _ =>
exists l2, (x :: l1)
end. intuition.
+ repeat find_rewrite. eauto.
+ simpl in *. intuition; subst; eauto.
Qed.

(* Specifications: *)
Lemma leaders_have_leaderLogs_strong_timeout :
refined_raft_net_invariant_timeout leaders_have_leaderLogs_strong.