intuition.
unfold lowDistApprox in *.
destruct H. destruct H. intuition.
econstructor. econstructor. intuition.
eauto.
eauto.
rewrite <- H0.
trivial.
Qed.

Lemma repeat_low_tree_approx_same_tree_inv : forall (A : Set)(eqd : eq_dec A)(P : A -> bool)(t1 t2 t3 : DistApproxTree A) n a,
datRepeat (eq t3) P n t1 t2 ->
lowDistApproxFromTree eqd t2 a ==
indicator P a *
((lowDistApproxFromTree eqd t1 a) +
(computeEmptySpace t1 P) *
sumList (getNats 0 n) (expRat (computeEmptySpace t3 P)) * (lowDistApproxFromTree eqd t3 a)).