intuition.
unfold sumList.
eapply fold_add_f_inverse;
intuition.
Qed.

Theorem distro_iso_eq : forall (A B C D : Set)(f : C -> D)(f_inv : D -> C)(d : Comp D)(c : Comp C)(f1 : D -> Comp B)(f2 : C -> Comp A)(a : A)(b : B),
(forall x, In x (getSupport d) -> f (f_inv x) = x) ->
(forall x, In x (getSupport c) -> f_inv (f x) = x) ->
(forall x, In x (getSupport d) -> In (f_inv x) (getSupport c)) ->
(forall x, In x (getSupport c) -> (evalDist d (f x)) == (evalDist c x)) ->
(forall x, In x (getSupport c) -> (evalDist (f1 (f x)) b) == (evalDist (f2 x) a)) ->
(evalDist (Bind d f1) b == evalDist (Bind c f2) a).