basic constructions:
strong axioms
further
The principle of unique choice, also known as function comprehension, is the principle that every total functional relation determines a (necessarily unique) function.
This is true in classical logic and most forms of intuitionistic logic (for example the internal language of any topos), but fails in weaker systems such as the internal language of a tripos, or one of the internal languages of a quasitopos.
A total, functional relation is precisely an adjunction in the bicategory of relations Rel. So the principle of unique choice can be seen as a functor , in fact, an equivalence of categories. For this reason, bicategories modeling relations such as cartesian bicategories or allegories can be used to model functions as well by using the adjoint pairs of relations.
However, note that a generalization from Rel to the bicategory Prof of categories and profunctors is not possible: in general an adjoint pair of profunctors determines only a semifunctor, which can be improved to a functor if the codomain category is Cauchy complete. For this reason, sometimes people use algebraic structures modeling profunctors such as proarrow equipments and virtual double categories that include notions of functor in addition to profunctor.
In dependent type theory, unique choice can be formulated as for any , and that
Whether unique choice is provable or not depends mostly on what notion of proposition is used. It is not provable using the primitive notion of proposition in OTT or Rocq.
However, if we use the notion of mere proposition in homotopy type theory and interpret unique existence as (see uniqueness quantifier.), then this is provable in MLTT in the presence of function extensionality (see ME2019.)
Homotopy Type Theory: Univalent Foundations of Mathematics, The Univalent Foundations Project, Institute for Advanced Study, 2013. (web, pdf)
Introduction to Univalent Foundations of Mathematics with Agda, Martín Hötzel Escardó, 2019. (web)
Last revised on October 27, 2025 at 11:45:54. See the history of this page for a list of all contributions to it.