Proof using si rri.
intros.
pose proof (lift_prop _ logs_sorted_invariant).
find_insterU. conclude_using eauto.
unfold logs_sorted, logs_sorted_host in *. break_and.
unfold deghost in *. simpl in *. break_match. eauto.
Qed.

(* Specifications: *)
Lemma msg_lifted_sorted_host :
forall net h,
msg_refined_raft_intermediate_reachable net ->
sorted (log (snd (nwState net h))).
Lemma votesWithLog_update_elections_data_timeout :
forall {h st out st' l},
handleTimeout h (snd st) = (out, st', l) ->
forall (P : list (term * name * list entry) -> Prop),
(forall t cid, P ((t, cid, log st') :: votesWithLog (fst st))) ->
(P (votesWithLog (fst st))) ->
(P (votesWithLog (update_elections_data_timeout h st))).
Lemma leaderLogs_update_elections_data_timeout :
forall h st,
leaderLogs (update_elections_data_timeout h st) =
leaderLogs (fst st).