Ltac forward_invariant :=
    match goal with
    | [ H : refined_raft_intermediate_reachable _, H' : _ |- _ ] =>
      apply H' in H; clear H'
    end.Ltac forward_nw_invariant :=
    match goal with
    | [ H : forall _ _ _ _ _ _ _, In _ _ -> pBody _ = _ -> _,
        H' : In _ _,
        H'' : pBody _ = _ |- _ ] =>
      specialize (H _ _ _ _ _ _ _ H' H'')
    end.

(* Specifications: *)
Lemma entries_contiguous_nw_invariant : forall net, refined_raft_intermediate_reachable net -> entries_contiguous_nw net.
Lemma entries_gt_0_nw_invariant : forall net, refined_raft_intermediate_reachable net -> entries_gt_0_nw net.
Lemma entries_sorted_nw_invariant : forall net, refined_raft_intermediate_reachable net -> entries_sorted_nw net.
Lemma entries_gt_0_invariant : forall net, refined_raft_intermediate_reachable net -> entries_gt_0 net.
Lemma entries_contiguous_invariant : forall net, refined_raft_intermediate_reachable net -> entries_contiguous net.
Lemma entries_sorted_invariant : forall net, refined_raft_intermediate_reachable net -> entries_sorted net.
Lemma entries_match_invariant : forall net h h', refined_raft_intermediate_reachable net -> entries_match (log (snd (nwState net h))) (log (snd (nwState net h'))).
Lemma entries_match_nw_1_invariant : forall net, refined_raft_intermediate_reachable net -> entries_match_nw_1 net.
Lemma entries_match_nw_host_invariant : forall net, refined_raft_intermediate_reachable net -> entries_match_nw_host net.
Lemma allEntries_gt_0_invariant : forall net h e, refined_raft_intermediate_reachable net -> In e (map snd (allEntries (fst (nwState net h)))) -> eIndex e > 0.