intuition.
despec.
intuition.
rewrite H0.
rewrite H.
unfold marginal_l, marginal_r.
dist_skip.
simpl.
specialize (H2 x1).
intuition.
destruct x1.
simpl in *.
subst.
destruct (EqDec_dec bool_EqDec (@eqb _ eqd1 a0 x) true); intuition.
rewrite eqb_leibniz in e.
subst.
destruct (EqDec_dec bool_EqDec (@eqb _ eqd2 x x) true); intuition.
exfalso.
eapply n.
eapply eqb_refl.
destruct (EqDec_dec bool_EqDec (@eqb _ eqd2 a0 x) true); intuition.
rewrite eqb_leibniz in e.
subst.
exfalso.
eapply n.
eapply eqb_leibniz.
trivial.
Qed.

(* Specifications: *)
Theorem comp_spec_eq_trans_l :
forall (A B : Set){eqd : EqDec A}{eqd : EqDec B}(c1 c2 : Comp A)(c3 : Comp B) P,
comp_spec eq c1 c2 ->
comp_spec P c2 c3 ->
comp_spec P c1 c3.