Proof using rmri.
unfold msg_refined_raft_net_invariant_request_vote, commit_invariant.
simpl. intuition.
- unfold commit_invariant_host in *.
simpl. intros.
repeat find_higher_order_rewrite.
update_destruct_simplify.
+ eapply handleRequestVote_preserves_committed; eauto.
match goal with
| [ H : context [commitIndex] |- _ ] => erewrite handleRequestVote_same_commitIndex in H by eauto
end.
match goal with
| [ H : context [log] |- _ ] => erewrite handleRequestVote_same_log in H by eauto
end.
eapply lifted_committed_monotonic; eauto.
find_apply_lem_hyp handleRequestVote_currentTerm_leaderId.
intuition.
unfold mgv_refined_base_params, raft_refined_base_params, refined_base_params in *.
simpl in *.
repeat find_rewrite. auto.
+ eapply handleRequestVote_preserves_committed; eauto.
- unfold commit_invariant_nw in *.
simpl. intros.
find_apply_hyp_hyp. intuition.
+ eapply handleRequestVote_preserves_committed; eauto.
simpl. intros. subst. auto.
+ subst. simpl in *. unfold write_ghost_log in *.
find_apply_lem_hyp handleRequestVote_no_append_entries.
subst.
exfalso. eauto 10.
Qed.

(* Specifications: *)
Lemma handleRequestVoteReply_preserves_committed :
forall (net net' : ghost_log_network) h src t v st' e t',
handleRequestVoteReply h (snd (nwState net h)) src t v = st' ->
(forall h', nwState net' h' = update name_eq_dec (nwState net) h
(update_elections_data_requestVoteReply h
src t v (nwState net h), st') h') ->
lifted_committed net e t' ->
lifted_committed net' e t'.