Proof using.
unfold raft_net_invariant_timeout, no_entries_past_current_term.
intros. find_apply_lem_hyp handleTimeout_spec.
intuition.
- unfold no_entries_past_current_term_host in *.
intros. simpl in *.
find_higher_order_rewrite; break_if; eauto.
subst; repeat find_rewrite.
eapply le_trans; [|eauto]; eauto.
- eauto using no_entries_past_current_term_nw_no_append_entries.
Qed.

Lemma handleAppendEntries_spec :
forall h st t n pli plt es ci st' m,
handleAppendEntries h st t n pli plt es ci = (st', m) ->
(currentTerm st <= currentTerm st' /\
(forall e,
In e (log st') ->
In e (log st) \/
In e es /\ currentTerm st' = t) /\
~ is_append_entries m).