End InternalTheory.
End Choice.
Export Choice.Exports.
Section ChoiceTheory.
Implicit Type T : choiceType.
Local Notation dc := decode.
Section OneType.
Variable T : choiceType.
Implicit Types P Q : pred T.
Definition xchoose P exP := sval (@xchoose_subproof T P exP).

(* Specifications: *)
Lemma xchooseP P exP : P (@xchoose P exP).
Lemma sigW P : (exists x, P x) -> {x | P x}.
Lemma sig_eqW (vT : eqType) (lhs rhs : T -> vT) :
(exists x, lhs x = rhs x) -> {x | lhs x = rhs x}.
Lemma sig2_eqW (vT : eqType) (P : pred T) (lhs rhs : T -> vT) :
(exists2 x, P x & lhs x = rhs x) -> {x | P x & lhs x = rhs x}.