induction 1; intuition; subst; try discriminate.
inversion H1; clear H1; subst.
inversion H0; clear H0; subst.
destruct (evalDet_step_done_inv _ _ H2). subst.
simpl in *.
inversion H2; clear H2; subst.
exists nil. trivial.
edestruct (IHevalDet_steps).
symmetry. eauto.
eauto.
subst.
symmetry in H.
apply evalDet_step_more_sublist in H.
destruct H.
subst.
exists (x0 ++ x).
apply app_assoc.
Qed.

Lemma evalDet_sublist : forall (A : Set)(c : Comp A) a ls ls',
evalDet_steps (cs_more c ls) (cs_done a ls') ->
exists ls'', ls = ls'' ++ ls'.