Library Coq.Logic.ChoiceFacts
Some facts and definitions concerning choice and description in
intuitionistic logic.
References:
[Bell] John L. Bell, Choice principles in intuitionistic set theory,
unpublished.
[Bell93] John L. Bell, Hilbert's Epsilon Operator in Intuitionistic
Type Theories, Mathematical Logic Quarterly, volume 39, 1993.
[Carlström04] Jesper Carlström, EM + Ext + AC_int is equivalent to
AC_ext, Mathematical Logic Quaterly, vol 50(3), pp 236-240, 2004.
[Carlström05] Jesper Carlström, Interpreting descriptions in
intentional type theory, Journal of Symbolic Logic 70(2):488-514, 2005.
[Werner97] Benjamin Werner, Sets in Types, Types in Sets, TACS, 1997.
Definitions
Choice, reification and description schemes
We make them all polymorphic. Most of them have existentials as conclusion
so they require polymorphism otherwise their first application (e.g. to an
existential in
Set) will fix the level of
A.
Constructive choice and description
AC_rel = relational form of the (non extensional) axiom of choice
(a "set-theoretic" axiom of choice)
AC_fun = functional form of the (non extensional) axiom of choice
(a "type-theoretic" axiom of choice)
AC_fun_dep = functional form of the (non extensional) axiom of
choice, with dependent functions
AC_trunc = axiom of choice for propositional truncations
(truncation and quantification commute)
DC_fun = functional form of the dependent axiom of choice
ACw_fun = functional form of the countable axiom of choice
AC! = functional relation reification
(known as axiom of unique choice in topos theory,
sometimes called principle of definite description in
the context of constructive type theory, sometimes
called axiom of no choice)
AC_dep! = functional relation reification, with dependent functions
see AC!
AC_fun_repr = functional choice of a representative in an equivalence class
AC_fun_setoid = functional form of the (so-called extensional) axiom of
choice from setoids
AC_fun_setoid_gen = functional form of the general form of the (so-called
extensional) axiom of choice over setoids
AC_fun_setoid_simple = functional form of the (so-called extensional) axiom of
choice from setoids on locally compatible relations
ID_epsilon = constructive version of indefinite description;
combined with proof-irrelevance, it may be connected to
Carlström's type theory with a constructive indefinite description
operator
ID_iota = constructive version of definite description;
combined with proof-irrelevance, it may be connected to
Carlström's and Stenlund's type theory with a
constructive definite description operator)
Weakly classical choice and description
GAC_rel = guarded relational form of the (non extensional) axiom of choice
GAC_fun = guarded functional form of the (non extensional) axiom of choice
GAC! = guarded functional relation reification
OAC_rel = "omniscient" relational form of the (non extensional) axiom of choice
OAC_fun = "omniscient" functional form of the (non extensional) axiom of choice
(called AC* in Bell [Bell])
D_epsilon = (weakly classical) indefinite description principle
D_iota = (weakly classical) definite description principle
Generalized schemes
Notation RelationalChoice :=
(
forall A B :
Type,
RelationalChoice_on A B).
Notation FunctionalChoice :=
(
forall A B :
Type,
FunctionalChoice_on A B).
Notation DependentFunctionalChoice :=
(
forall A (
B:
A->Type),
DependentFunctionalChoice_on B).
Notation InhabitedForallCommute :=
(
forall A (
B :
A -> Type),
InhabitedForallCommute_on B).
Notation FunctionalDependentChoice :=
(
forall A :
Type,
FunctionalDependentChoice_on A).
Notation FunctionalCountableChoice :=
(
forall A :
Type,
FunctionalCountableChoice_on A).
Notation FunctionalChoiceOnInhabitedSet :=
(
forall A B :
Type,
inhabited B -> FunctionalChoice_on A B).
Notation FunctionalRelReification :=
(
forall A B :
Type,
FunctionalRelReification_on A B).
Notation DependentFunctionalRelReification :=
(
forall A (
B:
A->Type),
DependentFunctionalRelReification_on B).
Notation RepresentativeFunctionalChoice :=
(
forall A :
Type,
RepresentativeFunctionalChoice_on A).
Notation SetoidFunctionalChoice :=
(
forall A B:
Type,
SetoidFunctionalChoice_on A B).
Notation GeneralizedSetoidFunctionalChoice :=
(
forall A B :
Type,
GeneralizedSetoidFunctionalChoice_on A B).
Notation SimpleSetoidFunctionalChoice :=
(
forall A B :
Type,
SimpleSetoidFunctionalChoice_on A B).
Notation GuardedRelationalChoice :=
(
forall A B :
Type,
GuardedRelationalChoice_on A B).
Notation GuardedFunctionalChoice :=
(
forall A B :
Type,
GuardedFunctionalChoice_on A B).
Notation GuardedFunctionalRelReification :=
(
forall A B :
Type,
GuardedFunctionalRelReification_on A B).
Notation OmniscientRelationalChoice :=
(
forall A B :
Type,
OmniscientRelationalChoice_on A B).
Notation OmniscientFunctionalChoice :=
(
forall A B :
Type,
OmniscientFunctionalChoice_on A B).
Notation ConstructiveDefiniteDescription :=
(
forall A :
Type,
ConstructiveDefiniteDescription_on A).
Notation ConstructiveIndefiniteDescription :=
(
forall A :
Type,
ConstructiveIndefiniteDescription_on A).
Notation IotaStatement :=
(
forall A :
Type,
IotaStatement_on A).
Notation EpsilonStatement :=
(
forall A :
Type,
EpsilonStatement_on A).
Subclassical schemes
PI = proof irrelevance
IGP = independence of general premises
(an unconstrained generalisation of the constructive principle of
independence of premises)
Drinker = drinker's paradox (small form)
(called Ex in Bell [Bell])
EM = excluded-middle
Extensional schemes
Ext_prop_repr = choice of a representative among extensional propositions
Ext_pred_repr = choice of a representative among extensional predicates
Ext_fun_repr = choice of a representative among extensional functions
We let also
- IPL_2 = 2nd-order impredicative minimal predicate logic (with ex. quant.)
- IPL^2 = 2nd-order functional minimal predicate logic (with ex. quant.)
- IPL_2^2 = 2nd-order impredicative, 2nd-order functional minimal pred. logic (with ex. quant.)
with no prerequisite on the non-emptiness of domains
Table of contents
1. Definitions
2. IPL_2^2 |- AC_rel + AC! = AC_fun
3.1. typed IPL_2 + Sigma-types + PI |- AC_rel = GAC_rel and IPL_2 |- AC_rel + IGP -> GAC_rel and IPL_2 |- GAC_rel = OAC_rel
3.2. IPL^2 |- AC_fun + IGP = GAC_fun = OAC_fun = AC_fun + Drinker
3.3. D_iota -> ID_iota and D_epsilon <-> ID_epsilon + Drinker
4. Derivability of choice for decidable relations with well-ordered codomain
5. AC_fun = AC_fun_dep = AC_trunc
6. Non contradiction of constructive descriptions wrt functional choices
7. Definite description transports classical logic to the computational world
8. Choice -> Dependent choice -> Countable choice
9.1. AC_fun_setoid = AC_fun + Ext_fun_repr + EM
9.2. AC_fun_setoid = AC_fun + Ext_pred_repr + PI
AC_rel + AC! = AC_fun
We show that the functional formulation of the axiom of Choice
(usual formulation in type theory) is equivalent to its relational
formulation (only formulation of set theory) + functional relation
reification (aka axiom of unique choice, or, principle of (parametric)
definite descriptions)
This shows that the axiom of choice can be assumed (under its
relational formulation) without known inconsistency with classical logic,
though functional relation reification conflicts with classical logic
Connection between the guarded, non guarded and omniscient choices
We show that the guarded formulations of the axiom of choice
are equivalent to their "omniscient" variant and comes from the non guarded
formulation in presence either of the independence of general premises
or subset types (themselves derivable from subtypes thanks to proof-
irrelevance)
AC_rel + PI -> GAC_rel and AC_rel + IGP -> GAC_rel and GAC_rel = OAC_rel
OAC_rel = GAC_rel
AC_fun + IGP = GAC_fun = OAC_fun = AC_fun + Drinker
AC_fun + IGP = GAC_fun
AC_fun + Drinker = OAC_fun
This was already observed by Bell
[Bell]
OAC_fun = GAC_fun
This is derivable from the intuitionistic equivalence between IGP and Drinker
but we give a direct proof
D_iota -> ID_iota and D_epsilon <-> ID_epsilon + Drinker
D_iota -> ID_iota
ID_epsilon + Drinker <-> D_epsilon
Derivability of choice for decidable relations with well-ordered codomain
Countable codomains, such as
nat, can be equipped with a
well-order, which implies the existence of a least element on
inhabited decidable subsets. As a consequence, the relational form of
the axiom of choice is derivable on
nat for decidable relations.
We show instead that functional relation reification and the
functional form of the axiom of choice are equivalent on decidable
relation with
nat as codomain
AC_fun = AC_fun_dep = AC_trunc
Choice on dependent and non dependent function types are equivalent
The easy part
Deriving choice on product types requires some computation on
singleton propositional types, so we need computational
conjunction projections and dependent elimination of conjunction
and equality
Functional choice and truncation choice are equivalent
Reification of dependent and non dependent functional relation are equivalent
The easy part
Deriving choice on product types requires some computation on
singleton propositional types, so we need computational
conjunction projections and dependent elimination of conjunction
and equality
Non contradiction of constructive descriptions wrt functional axioms of choice
Non contradiction of indefinite description
Non contradiction of definite description
Remark, the following corollaries morally hold:
Definition In_propositional_context (A:Type) := forall C:Prop, (A -> C) -> C.
Corollary constructive_definite_descr_in_prop_context_iff_fun_reification :
In_propositional_context ConstructiveIndefiniteDescription
<-> FunctionalChoice.
Corollary constructive_definite_descr_in_prop_context_iff_fun_reification :
In_propositional_context ConstructiveDefiniteDescription
<-> FunctionalRelReification.
but expecting
FunctionalChoice (resp.
FunctionalRelReification) to
be applied on the same Type universes on both sides of the first
(resp. second) equivalence breaks the stratification of universes.
Excluded-middle + definite description => computational excluded-middle
The idea for the following proof comes from
[ChicliPottierSimpson02]
Classical logic and axiom of unique choice (i.e. functional
relation reification), as shown in
[ChicliPottierSimpson02],
implies the double-negation of excluded-middle in
Set (which is
incompatible with the impredicativity of
Set).
We adapt the proof to show that constructive definite description
transports excluded-middle from
Prop to
Set.
[ChicliPottierSimpson02] Laurent Chicli, Loïc Pottier, Carlos
Simpson, Mathematical Quotients and Quotient Types in Coq,
Proceedings of TYPES 2002, Lecture Notes in Computer Science 2646,
Springer Verlag.
Choice => Dependent choice => Countable choice
About the axiom of choice over setoids
Consequences of the choice of a representative in an equivalence class
This is a variant of Diaconescu and Goodman-Myhill theorems
AC_fun_setoid = AC_fun_setoid_gen = AC_fun_setoid_simple
AC_fun_setoid = AC! + AC_fun_repr
Note: What characterization to give of
RepresentativeFunctionalChoice? A formulation of it as a functional
relation would certainly be equivalent to the formulation of
SetoidFunctionalChoice as a functional relation, but in their
functional forms, SetoidFunctionalChoice seems strictly stronger
AC_fun_setoid = AC_fun + Ext_fun_repr + EM
Import EqNotations.
This is the main theorem in [Carlström04]
Note: all ingredients have a computational meaning when taken in
separation. However, to compute with the functional choice,
existential quantification has to be thought as a strong
existential, which is incompatible with the computational content of
excluded-middle
AC_fun_setoid = AC_fun + Ext_pred_repr + PI
Note: all ingredients have a computational meaning when taken in
separation. However, to compute with the functional choice,
existential quantification has to be thought as a strong
existential, which is incompatible with proof-irrelevance which
requires existential quantification to be truncated