Proof using tsi rri.
red. unfold log_all_entries. intros.
simpl in *. repeat find_higher_order_rewrite.
destruct_update; simpl in *; eauto;
[|copy_eapply_prop_hyp In In; repeat find_rewrite; auto].
find_copy_apply_lem_hyp handleAppendEntries_currentTerm_monotonic.
find_eapply_lem_hyp update_elections_data_appendEntries_log_allEntries;
intuition; eauto; repeat find_rewrite; repeat rewrite_goal; eauto.
- copy_eapply_prop_hyp In In; repeat find_rewrite; auto.
find_apply_lem_hyp no_entries_past_current_term_host_lifted_invariant; auto.
repeat find_rewrite. eauto using le_antisym.
- subst.
apply in_app_iff. right.
find_apply_hyp_hyp.
find_apply_lem_hyp no_entries_past_current_term_host_lifted_invariant; auto.
eauto using le_antisym.
- subst.
apply in_app_iff.
left.
apply in_map_iff. eauto.
- do_in_app. intuition.
+ subst.
apply in_app_iff.
left.
apply in_map_iff. eauto.
+ subst.
apply in_app_iff. right.
find_apply_lem_hyp removeAfterIndex_in.
find_apply_hyp_hyp.
find_apply_lem_hyp no_entries_past_current_term_host_lifted_invariant; auto.
eauto using le_antisym.
Qed.

(* Specifications: *)
Lemma log_all_entries_append_entries_reply :
refined_raft_net_invariant_append_entries_reply log_all_entries.