Proof using.
intros. induction tr; simpl in *; try congruence.
repeat break_let. subst.
repeat break_match; simpl in *; intuition; subst;
try solve [unfold in_output_trace in *;break_exists_exists; intuition].
find_inversion. find_apply_lem_hyp get_output'_In.
repeat eexists; eauto; in_crush.
Qed.

Lemma deduplicate_partition :
forall l xs e ys xs' e' ys',
deduplicate_log l = xs ++ e :: ys ->
deduplicate_log l = xs' ++ e' :: ys' ->
eClient e = eClient e' ->
eId e = eId e' ->
xs = xs'.