Proof using aeli.
red. unfold allEntries_votesWithLog. intros. simpl in *.
repeat find_higher_order_rewrite.
destruct_update; simpl in *.
- find_rewrite_lem update_elections_data_timeout_allEntries.
find_eapply_lem_hyp votesWithLog_update_elections_data_timeout'; eauto.
intuition.
+ eapply_prop_hyp votesWithLog votesWithLog; eauto; intuition;
right; break_exists_exists; intuition;
find_higher_order_rewrite; destruct_update; simpl in *; auto.
rewrite update_elections_data_timeout_leaderLogs. auto.
+ subst.
find_copy_apply_lem_hyp handleTimeout_log_same. repeat find_rewrite.
find_apply_lem_hyp allEntries_log_invariant; eauto. intuition.
right.
break_exists_exists; intuition;
find_higher_order_rewrite; destruct_update; simpl in *; auto;
rewrite update_elections_data_timeout_leaderLogs; auto.
- eapply_prop_hyp votesWithLog votesWithLog; eauto; intuition;
right; break_exists_exists; intuition;
find_higher_order_rewrite; destruct_update; simpl in *; auto.
rewrite update_elections_data_timeout_leaderLogs; auto.
Qed.

(* Specifications: *)
Lemma allEntries_votesWithLog_do_leader :
refined_raft_net_invariant_do_leader allEntries_votesWithLog.