Program Instance TR : TraceRelation step_failure :=
    {
      init := step_failure_init;
      T := output_before_input client id client' id';
      R := fun s => entries_ordered client id client' id' (snd s)
    }.

(* Specifications: *)
Theorem causal_order_preserved : forall failed net tr, step_failure_star step_failure_init (failed, net) tr -> output_before_input client id client' id' tr -> entries_ordered client id client' id' net.