Proof using rmri.
unfold msg_refined_raft_net_invariant_request_vote_reply, commit_invariant.
simpl. intuition.
- unfold commit_invariant_host in *. simpl. intuition.
match goal with
| [ H : forall h, st' h = _ |- _ ] => repeat rewrite H in *
end. destruct (name_eq_dec (pDst p) h).
+ subst h. subst gd. rewrite_update. simpl in *.
eapply handleRequestVoteReply_preserves_committed; eauto.
find_copy_apply_lem_hyp handleRequestVoteReply_type.
subst.
match goal with
| [ H : context [commitIndex] |- _ ] => rewrite handleRequestVoteReply_same_commitIndex in H
end.
match goal with
| [ H : context [log] |- _ ] => erewrite handleRequestVoteReply_same_log in H
end.
eapply lifted_committed_monotonic; eauto.
intuition; repeat find_rewrite; auto.
+ rewrite_update. eapply handleRequestVoteReply_preserves_committed; eauto.
simpl. subst. auto.
- unfold commit_invariant_nw. simpl.
intros.
find_apply_hyp_hyp.
eapply handleRequestVoteReply_preserves_committed; eauto.
simpl. subst. auto.
Qed.

(* Specifications: *)
Lemma committed_ext' :
forall ps ps' st st' t e,
(forall h, st' h = st h) ->
committed (mkNetwork ps st) e t ->
committed (mkNetwork ps' st') e t.