Section NoAppendEntriesToSelf.
Context {orig_base_params : BaseParams}.
Context {one_node_params : OneNodeParams orig_base_params}.
Context {raft_params : RaftParams orig_base_params}.
Proof using.
intros.
unfold doLeader in *.
repeat break_match; try solve [find_inversion; simpl in *; congruence].
find_inversion.
do_in_map.
subst. simpl in *.
find_apply_lem_hyp filter_In.
intuition. subst.
break_match; congruence.
Qed.
Proof using.
red. red. intros. simpl in *.
find_apply_hyp_hyp. intuition eauto.
do_in_map.
subst. simpl in *.
find_eapply_lem_hyp doLeader_no_messages_to_self; eauto.
Qed.

Lemma no_append_entries_to_self_do_generic_server :
raft_net_invariant_do_generic_server no_append_entries_to_self.