Program Instance TR : InverseTraceRelation step_failure :=
    {
      init := step_failure_init;
      T := input_before_output client id;
      R := fun s => in_applied_entries client id (snd s) 
    }.

(* Specifications: *)
Theorem output_implies_input_before_output : forall failed net tr, step_failure_star step_failure_init (failed, net) tr -> key_in_output_trace client id tr -> input_before_output client id tr.