Proof using rmri.
unfold msg_refined_raft_net_invariant_do_generic_server, commit_invariant.
simpl. intros.
match goal with
| [ H : nwState ?net ?h = (?x, ?y) |- _ ] =>
replace x with (fst (nwState net h)) in * by (rewrite H; auto);
replace y with (snd (nwState net h)) in * by (rewrite H; auto);
clear H
end.
intuition.
- unfold commit_invariant_host in *.
simpl. intros.
repeat find_higher_order_rewrite.
update_destruct_simplify.
+ eapply doGenericServer_preserves_committed; eauto.
match goal with
| [ H : context [commitIndex] |- _ ] => erewrite doGenericServer_commitIndex  in H  by eauto
end.
match goal with
| [ H : context [log] |- _ ] => erewrite doGenericServer_log in H by eauto
end.
eapply lifted_committed_monotonic; eauto.
find_apply_lem_hyp doGenericServer_type.
intuition. repeat find_rewrite. auto.
+ eapply doGenericServer_preserves_committed; eauto.
- unfold commit_invariant_nw in *.
simpl. intuition.
+ find_apply_hyp_hyp. intuition.
* eapply doGenericServer_preserves_committed; eauto.
* do_in_map. unfold add_ghost_msg in *. do_in_map.
find_apply_lem_hyp doGenericServer_packets.
subst. simpl in *. intuition.
Qed.

(* Specifications: *)
Lemma commit_invariant_state_same_packet_subset :
msg_refined_raft_net_invariant_state_same_packet_subset commit_invariant.