Proof using.
red. intros. subst.
match goal with
| H : nwState ?net ?h = (?gd, ?d) |- _ =>
replace gd with (fst (nwState net h)) in * by (rewrite H; reflexivity);
replace d with (snd (nwState net h)) in * by (rewrite H; reflexivity);
clear H
end.
unfold reboot in *.
unfold prefix_within_term_inductive in *.
intros.
intros.
intuition; red; intros; try find_apply_hyp_hyp;
match goal with
| H : forall _, _ _ _ = update _ _ _ _ _ |- _ =>
repeat rewrite H in *
end;
match goal with
| H : nwPackets _ = nwPackets _ |- _ =>
repeat rewrite <- H in *
end;
destruct_update; simpl in *; eauto.
Qed.

(* Specifications: *)
Theorem prefix_within_term_inductive_invariant :
forall net,
refined_raft_intermediate_reachable net ->
prefix_within_term_inductive net.