Set Asymmetric Patterns.

(* Specifications: *)
Lemma choice_on_dependent_type: forall {A:Type} {B:A->Type}
(R:forall a:A, B a -> Prop),
(forall a:A, exists b:B a, R a b) ->
exists f:(forall a:A, B a), forall a:A, R a (f a).