Proof using.
unfold in_input_trace, input_correct.
induction tr; intros; break_exists; simpl in *; intuition; subst;
repeat break_match; intuition; subst; eauto 10 using f_equal.
Qed.

Lemma get_output_in_output_trace :
forall tr client id o,
get_output tr (client, id) = Some o ->
in_output_trace client id o tr.