Ltac packet_simpl :=
    first [do_in_map; subst; simpl in *;
           unfold add_ghost_msg in *;
           do_in_map; subst; simpl in *|subst; simpl in *].

(* Specifications: *)
Lemma ghost_log_entries_match_append_entries_reply : msg_refined_raft_net_invariant_append_entries_reply ghost_log_entries_match.
Lemma ghost_log_entries_match_request_vote : msg_refined_raft_net_invariant_request_vote' ghost_log_entries_match.
Lemma ghost_log_entries_match_request_vote_reply : msg_refined_raft_net_invariant_request_vote_reply ghost_log_entries_match.
Lemma sorted_entries_match_cons : forall l l' e, sorted (e :: l) -> entries_match l l' -> (~ exists e', eIndex e' = eIndex e /\ eTerm e' = eTerm e /\ In e' l') -> entries_match (e :: l) l'.
Lemma ghost_log_entries_match_client_request : msg_refined_raft_net_invariant_client_request ghost_log_entries_match.
Lemma ghost_log_entries_match_timeout : msg_refined_raft_net_invariant_timeout ghost_log_entries_match.
Lemma ghost_log_entries_match_do_leader : msg_refined_raft_net_invariant_do_leader ghost_log_entries_match.
Lemma ghost_log_entries_match_do_generic_server : msg_refined_raft_net_invariant_do_generic_server ghost_log_entries_match.
Lemma ghost_log_entries_match_reboot : msg_refined_raft_net_invariant_reboot ghost_log_entries_match.
Lemma ghost_log_entries_match_state_same_packet_subset : msg_refined_raft_net_invariant_state_same_packet_subset ghost_log_entries_match.
Lemma ghost_log_entries_match_invariant : forall net, msg_refined_raft_intermediate_reachable net -> ghost_log_entries_match net.