intuition.
edestruct (dat_exists_bind2).
eauto.
eauto.
rewrite bind_low_tree_approx_same_inv; eauto.
edestruct dat_exists.
eapply well_formed_Bind; eauto.
eapply leRat_trans.
2:{
eapply eqRat_impl_leRat.
eapply low_tree_approx_same_inv.
eapply H4.
eapply H2.
}
eapply lowDistApprox_dat_better_le.
apply dat_correct_bind_same in H4.
eapply dat_better_bind_div2; eauto.
trivial.
Grab Existential Variables.
eapply bind_eq_dec; eauto.
Qed.

(* Specifications: *)
Lemma lowDistApprox_func : forall (A : Set)(c : Comp A) a n r1 r2,
well_formed_comp c ->
lowDistApprox c a n r1 ->
lowDistApprox c a n r2 ->
r1 == r2.