intuition.
unfold dat_correct_bind, dat_correct_bind2 in *.
destruct H.
destruct H0.
intuition.
eapply datMap_depth_better.
4:{
eauto.
}
3:{
simpl.
eauto.
}
eapply dat_correct_dat_better; eauto.
intuition.
eapply dat_correct_dat_better; eauto.
omega.
Qed.

Lemma dat_correct_h_bind_app : forall (A B : Set) t (c1 : Comp B)(c2 : B -> Comp A) n ls1 ls2 a,
evalDet_steps (cs_more c1 ls1) (cs_done a nil) ->
dat_correct_h (Bind c1 c2) (ls1 ++ ls2) n t ->
dat_correct_h (c2 a) ls2 n t.