Section finite_discrete_choice.
Variable (X Y : Type) (R : X -> Y -> Prop)
(X_discrete : forall x y : X, { x = y } + { x <> y }).

Theorem list_discrete_choice l :
(forall x, In x l -> ex (R x))
-> exists f, forall x (Hx : In x l), R x (f x Hx).