intuition.
eapply constant_cost_le.
eapply (constant_cost_compose f2 (fun a x => f3 (f1 a) x)).
eauto.
eapply (constant_cost_compose f1 (fun a y x => f3 y x)).
eauto.
eapply constant_cost_const.
intuition.
eauto.
intuition.
omega.
Qed.

Theorem constant_cost_compose_binary_const_r :
forall (A B C D: Type)
(f1 : A -> B)(c : C)(f3 : B -> C -> D) c1 c2,
cost f1 c1 ->
cost (fun x => f3 x c) c2 ->
cost (fun a => f3 (f1 a) c) (c1 + c2).