Proof using.
unfold refined_raft_net_invariant_reboot, allEntries_leaderLogs_term.
simpl. intros.
find_higher_order_rewrite.
match goal with
| [ H : nwState ?net ?h = (?gd, ?d) |- _ ] =>
((replace gd with (fst (nwState net h)) in * by (now rewrite H));
(replace d with (snd (nwState net h)) in * by (now rewrite H))); clear H
end.
subst.
destruct_update.
- simpl in *.
find_apply_hyp_hyp.
intuition.
right.
break_exists_exists.
find_higher_order_rewrite.
destruct_update.
+ simpl. intuition.
+ auto.
- find_apply_hyp_hyp.
intuition.
right.
break_exists_exists.
find_higher_order_rewrite.
destruct_update.
+ simpl. intuition.
+ auto.
Qed.

(* Specifications: *)
Lemma allEntries_leaderLogs_term_invariant :
forall net,
refined_raft_intermediate_reachable net ->
allEntries_leaderLogs_term net.