Definition sequence_equality (net : seq_num_network) :=
    forall p p',
      In p (nwPackets net) ->
      In p' (nwPackets net) ->
      (tmNum (pBody p)) = (tmNum (pBody p')) ->
      pSrc p = pSrc p' ->
      p = p'.

Theorem revertNetwork_input : forall (st : seq_num_network) h (d : @data orig_base_params) l l' n, sequence_sane st -> sequence_seen st -> sequence_equality st -> processPackets (tdNum (nwState st h)) l = (n, l') -> revertNetwork (@mkNetwork _ multi_params (send_packets h l' ++ nwPackets st) (update name_eq_dec (nwState st) h (@mkseq_num_data _ orig_multi_params n (tdSeen (nwState st h)) d))) = {| nwPackets := (@send_packets _ orig_multi_params h l) ++ (nwPackets (revertNetwork st)); nwState := update name_eq_dec (nwState (revertNetwork st)) h d |}.