Definition RT_drop : Prop :=
    forall net failed tr xs p ys,
      step_failure_star step_failure_init (failed, net) tr ->
      T tr ->
      R net tr ->
      nwPackets net = xs ++ p :: ys ->
      R (mkNetwork (xs ++ ys) (nwState net))
        tr.Definition RT_dup : Prop :=
    forall net failed tr xs p ys,
      step_failure_star step_failure_init (failed, net) tr ->
      T tr ->
      R net tr ->
      nwPackets net = xs ++ p :: ys ->
      R (mkNetwork (p :: xs ++ p :: ys) (nwState net))
        tr.Definition RT_reboot : Prop :=
    forall net failed tr h,
      step_failure_star step_failure_init (failed, net) tr ->
      T tr ->
      R net tr ->
      R (mkNetwork (nwPackets net) (update name_eq_dec (nwState net) h (reboot (nwState net h))))
        tr.

Lemma state_trace_invariant_invariant : forall failed net tr, step_failure_star step_failure_init (failed, net) tr -> T tr -> R net tr.