(** Note: What characterization to give of RepresentativeFunctionalChoice? A formulation of it as a functional relation would certainly be equivalent to the formulation of SetoidFunctionalChoice as a functional relation, but in their functional forms, SetoidFunctionalChoice seems strictly stronger *)
(**********************************************************************)
(** * AC_fun_setoid = AC_fun + Ext_fun_repr + EM                      *)
(** ** This is the main theorem in [[Carlström04]] *)
(** Note: all ingredients have a computational meaning when taken in separation. However, to compute with the functional choice, existential quantification has to be thought as a strong existential, which is incompatible with the computational content of excluded-middle *)

(* Specifications: *)
Theorem fun_choice_and_ext_functions_repr_and_excluded_middle_imp_setoid_fun_choice :
FunctionalChoice -> ExtensionalFunctionRepresentative -> ExcludedMiddle -> RepresentativeFunctionalChoice.
Theorem setoid_functional_choice_first_characterization :
FunctionalChoice /\ ExtensionalFunctionRepresentative /\ ExcludedMiddle <-> SetoidFunctionalChoice.