Theorem list_choice : forall (A B : Type)(eqd : forall (a1 a2 : A), {a1 = a2} + {a1 <> a2}) P (ls : list A) (b : B), (forall a, In a ls -> exists (b : B), P a b) -> exists (f : A -> B), (forall a, In a ls -> P a (f a)).