Proof using.
intros. unfold revertNetwork. simpl in *.
in_crush.
apply filter_In. intuition.
- apply dedup_In. auto.
- break_if; intuition.
Qed.

(* Specifications: *)
Lemma revertNetwork_packets :
forall xs net (p : seq_num_packet) ys,
~ In (tmNum (pBody p)) (assoc_default name_eq_dec (tdSeen (nwState net (pDst p))) (pSrc p) []) ->
nwPackets net = xs ++ p :: ys ->
exists xs' ys',
nwPackets (revertNetwork net) =
xs' ++ (revertPacket p) :: ys'.