Proof using.
unfold refined_raft_net_invariant_client_request, allEntries_leaderLogs_term.
simpl.
intros.
subst.
repeat find_higher_order_rewrite.
destruct_update.
- simpl in *.
find_copy_apply_lem_hyp update_elections_data_client_request_allEntries.
intuition.
+ repeat find_rewrite.
find_apply_hyp_hyp.
intuition.
right.
break_exists_exists.
find_higher_order_rewrite.
destruct_update.
* simpl in *. rewrite update_elections_data_client_request_leaderLogs.
intuition.
* intuition.
+ break_exists. intuition.
find_rewrite. simpl in *. intuition.
* find_inversion.
find_copy_apply_lem_hyp handleClientRequest_type.
intuition.
repeat find_rewrite. intuition.
* find_apply_hyp_hyp.
intuition.
right.
break_exists_exists.
find_higher_order_rewrite.
{ destruct_update.
* simpl in *. rewrite update_elections_data_client_request_leaderLogs.
intuition.
* intuition.
}
- find_apply_hyp_hyp.
intuition.
right.
break_exists_exists.
find_higher_order_rewrite.
{ destruct_update.
* simpl in *. rewrite update_elections_data_client_request_leaderLogs.
intuition.
* intuition.
}
Qed.

(* Specifications: *)
Lemma allEntries_leaderLogs_term_timeout :
refined_raft_net_invariant_timeout allEntries_leaderLogs_term.