Proof using.
red. unfold logs_leaderLogs_inductive. intros. intuition.
- find_apply_lem_hyp handleTimeout_log_same. subst.
unfold logs_leaderLogs in *. intros.
simpl in *.
find_higher_order_rewrite; update_destruct; subst; rewrite_update; simpl in *;
repeat find_rewrite;
find_apply_hyp_hyp; break_exists_exists; intuition;
find_higher_order_rewrite; update_destruct; subst; rewrite_update; eauto;
simpl in *; rewrite update_elections_data_timeout_leaderLogs; eauto.
- intuition. unfold logs_leaderLogs_nw in *. intros.
simpl in *. find_apply_hyp_hyp. intuition.
+ copy_eapply_prop_hyp In In; eauto.
break_exists_exists; intuition;
repeat find_higher_order_rewrite;
update_destruct; subst; rewrite_update; eauto;
simpl in *; rewrite update_elections_data_timeout_leaderLogs; eauto.
+ do_in_map. subst. simpl in *.
find_eapply_lem_hyp handleTimeout_packets; eauto. intuition.
find_false. repeat find_rewrite.
repeat eexists; eauto.
Qed.

(* Specifications: *)
Lemma logs_leaderLogs_inductive_doGenericServer :
refined_raft_net_invariant_do_generic_server logs_leaderLogs_inductive.