Ltac use_same_client_cache hyp :=
    erewrite same_clientCache_same_getLastId in *;
    [|eapply hyp]; eauto.

(* Specifications: *)
Lemma client_cache_correct_append_entries : raft_net_invariant_append_entries' client_cache_correct.
Lemma client_cache_correct_append_entries_reply : raft_net_invariant_append_entries_reply' client_cache_correct.
Lemma client_cache_correct_request_vote : raft_net_invariant_request_vote' client_cache_correct.
Lemma client_cache_correct_request_vote_reply : raft_net_invariant_request_vote_reply' client_cache_correct.
Lemma client_cache_correct_client_request : raft_net_invariant_client_request' client_cache_correct.
Lemma client_cache_correct_timeout : raft_net_invariant_timeout' client_cache_correct.
Lemma client_cache_correct_do_leader : raft_net_invariant_do_leader' client_cache_correct.
Lemma client_cache_correct_reboot : raft_net_invariant_reboot' client_cache_correct.
Lemma client_cache_correct_state_same_packet_subset : raft_net_invariant_state_same_packet_subset client_cache_correct.
Lemma client_cache_correct_init : raft_net_invariant_init client_cache_correct.
Lemma client_cache_correct_invariant: forall (net : network), raft_intermediate_reachable net -> client_cache_correct net.
Theorem state_machine_correct_invariant : forall net, raft_intermediate_reachable net -> state_machine_correct net.