Proof using.
unfold raft_net_invariant_do_leader.
intros.
unfold doLeader in *.
break_match; try solve [
find_inversion; simpl in *;
eapply leader_sublog_invariant_subset;
eauto; intuition; simpl in *;
repeat find_apply_hyp_hyp; intuition;
repeat find_higher_order_rewrite; repeat break_if; subst; intuition].
break_if.
- unfold replicaMessage in *. find_inversion. simpl in *.
unfold leader_sublog_invariant in *; intuition.
+ unfold leader_sublog_host_invariant in *. intros.
simpl in *. repeat find_higher_order_rewrite.
repeat break_if; simpl in *; intuition eauto.
+ unfold leader_sublog_nw_invariant in *. intros.
simpl in *. repeat find_higher_order_rewrite.
find_apply_hyp_hyp.
break_if; intuition idtac; simpl in *; subst; intuition eauto;
simpl in *;
repeat do_in_map; subst; simpl in *;
find_inversion; eauto using findGtIndex_in.
- find_inversion.
unfold leader_sublog_invariant, leader_sublog_nw_invariant,
leader_sublog_host_invariant, advanceCommitIndex in *.
intuition; find_higher_order_rewrite; repeat break_if; simpl in *; subst;
repeat break_if; simpl in *; eauto;
find_apply_hyp_hyp; intuition; eauto.
Qed.

(* Specifications: *)
Lemma leader_sublog_client_request :
raft_net_invariant_client_request leader_sublog_invariant.