Proof using.
unfold output_correct.
intros.
break_exists.
intuition.
pose proof (deduplicate_log_app xs ys). break_exists.
repeat find_rewrite.
rewrite app_ass in *. simpl in *.
eexists. eexists. eexists. eexists. eexists.
intuition eauto.
Qed.

Lemma execute_log'_trace:
forall l d d' tr tr' tr'',
execute_log' l d tr = (tr', d') ->
execute_log' l d (tr'' ++ tr) = (tr'' ++ tr', d').