diff options
| author | Vincent Semeria | 2019-06-27 23:35:03 +0200 |
|---|---|---|
| committer | Vincent Semeria | 2019-07-16 18:45:34 +0200 |
| commit | eebc676ce4978b7e408c427889bae356d8b0efdc (patch) | |
| tree | 2bc6228c80817026d4e2108e871867fc50a86fa2 /doc | |
| parent | 3bd2722fb53552f45a25e6bc0a03a9ab0517485f (diff) | |
Define constructive real numbers as Cauchy sequences of rational numbers. Redefine classical real numbers as a quotient of those constructive real numbers.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/changelog/10-standard-library/10445-constructive-reals.rst | 30 | ||||
| -rw-r--r-- | doc/stdlib/index-list.html.template | 3 |
2 files changed, 33 insertions, 0 deletions
diff --git a/doc/changelog/10-standard-library/10445-constructive-reals.rst b/doc/changelog/10-standard-library/10445-constructive-reals.rst new file mode 100644 index 0000000000..dc5c97f895 --- /dev/null +++ b/doc/changelog/10-standard-library/10445-constructive-reals.rst @@ -0,0 +1,30 @@ +- New module `Reals.ConstructiveCauchyReals` defines constructive real numbers + by Cauchy sequences of rational numbers. Classical real numbers are now defined + as a quotient of these constructive real numbers, which significantly reduces + the number of axioms needed (see `Reals.Rdefinitions` and `Reals.Raxioms`), + while preserving backward compatibility. + + Futhermore, the new axioms for classical real numbers include the limited + principle of omniscience (`sig_forall_dec`), which is a logical principle + instead of an ad hoc property of the real numbers. In a future pull request + we propose to deduce the other axiom, `completeness`, from the logical + principle `sig_not_dec` (see `Reals.Rlogic`), which is the excluded middle + of negations in sort `Type`. + + If we want the axioms to be completely logical, we could also replace the + quotient axioms by functional extensionality, which gives the correct + equality to the equivalences classes represented as `bool`-valued functions + (also using Hedberg to get the unicity of proofs that those functions + are indeed equivalence classes). However that last part is not + completely backward compatible : it assumes funext, which is more + powerful than ad hoc quotient axioms. + + Future work includes the development of constructive analysis, by + moving the constructive lemmas in new modules (see `Reals.RIneq_constr`), + and by interfacing tighter with libraries C-CoRN and math-classes. + Since the constructive definitions are weaker, this will require + to adapt the definitions in some places. We also need to work on + efficient extractions of constructive real numbers, so that we can + compute them in practice. + + See `#10445 <https://github.com/coq/coq/pull/10445>`_, by Vincent Semeria. diff --git a/doc/stdlib/index-list.html.template b/doc/stdlib/index-list.html.template index a561de1d0c..eb7c982d49 100644 --- a/doc/stdlib/index-list.html.template +++ b/doc/stdlib/index-list.html.template @@ -516,7 +516,9 @@ through the <tt>Require Import</tt> command.</p> </dt> <dd> theories/Reals/Rdefinitions.v + theories/Reals/ConstructiveCauchyReals.v theories/Reals/Raxioms.v + theories/Reals/RIneq_constr.v theories/Reals/RIneq.v theories/Reals/DiscrR.v theories/Reals/ROrderedType.v @@ -561,6 +563,7 @@ through the <tt>Require Import</tt> command.</p> theories/Reals/Ranalysis5.v theories/Reals/Ranalysis_reg.v theories/Reals/Rcomplete.v + theories/Reals/Rcomplete_constr.v theories/Reals/RiemannInt.v theories/Reals/RiemannInt_SF.v theories/Reals/Rpow_def.v |
