intuition.
simpl.
eapply leRat_trans.
eapply eqRat_impl_leRat.
rewrite sumList_body_eq.
2:{
intros.
eapply ratMult_eqRat_compat.
eapply H0.
eapply eqRat_refl.
}
eapply eqRat_refl.
assert (Permutation (getSupport c1) (getSupport c2)).
eapply NoDup_Permutation; intuition; eauto using getSupport_NoDup.
eapply getSupport_In_evalDist.
rewrite <- H0.
eapply getSupport_In_evalDist.
trivial.
eapply getSupport_In_evalDist.
rewrite H0.
eapply getSupport_In_evalDist.
trivial.
erewrite sumList_permutation; eauto.
rewrite sumList_distance_prod.
eapply leRat_trans.
eapply sumList_le; intuition.
eapply ratMult_leRat_compat.
eapply leRat_refl.
eapply H1.
eapply getSupport_In_evalDist.
rewrite H0.
eapply getSupport_In_evalDist.
trivial.
rewrite sumList_factor_constant_r.
rewrite evalDist_lossless.
rewrite ratMult_1_l.
intuition.
trivial.
Qed.

(* Specifications: *)
Lemma evalDist_Bind_1_le_l : forall (A B : Set) (b : Comp B) (a : B -> Comp A) (y : A) (v : Rat),
well_formed_comp b ->
(forall x : B, In x (getSupport b) -> evalDist (a x) y <= v) ->
evalDist (x <-$ b; a x) y <= v.