intuition.
unfold dat_correct_repeat, dat_correct_repeat2 in *.
destruct H0.
destruct H1.
intuition.
eapply datRepeat_better_depth.
eauto.
eauto.
eapply dat_correct_dat_better.
eauto.
eauto.
omega.
omega.
omega.
intuition.
eapply dat_correct_dat_better; eauto.
intuition.
inversion H1; clear H1; subst.
inversion H7; clear H7; subst.
destruct H.
assert (x1 = a).
eapply evalDet_steps_nil_eq; eauto.
eapply filter_In; eauto.
subst.
eapply filter_In; eauto.
intuition.
destruct H.
eapply datCorrect_datDepth.
eauto.
Qed.

(* Specifications: *)
Lemma lowDistApprox_le_repeat:
forall (n : nat) (A : Set) (c : Comp A) (P : A -> bool)(a : A) (v1 v2 : Rat),
well_formed_comp c ->
(exists a0 : A, In a0 (filter P (getSupport c))) ->
lowDistApprox (Repeat c P) a n v1 ->
lowDistApprox_repeat c P a n v2 ->
n > O ->
v1 <= v2.