REALACL2(r) support for real numbers
Major Section: ACL2 Documentation
ACL2 supports rational numbers but not real numbers. However,
starting with Version 2.5, a variant of ACL2 called ``ACL2(r)''
supports the real numbers by way of non-standard analysis. ACL2(r)
was conceived and first implemented by Ruben Gamboa in his Ph.D.
dissertation work, supervised by Bob Boyer with active participation
by Matt Kaufmann. The Makefile provided with ACL2 has target
large-acl2r for building ACL2(r) images. To see
which image you have, see if the prompt includes the string ``
Or, look at
(@ acl2-version) and see if ``
(r)'' is a substring.
In ACL2 (as opposed to ACL2(r)), when we say ``real'' we mean
Caution: ACL2(r) should be considered experimental as of Version
2.5: although we (Kaufmann and Moore) have carefully completed
Gamboa's integration of the reals into the ACL2 source code, our
primary concern to date has been to ensure unchanged behavior when
ACL2 is compiled in the default manner, i.e., without the
non-standard extensions. As for every release of ACL2, at the time
of this release we believe ACL2 Version 2.5 is sound. We are
confident that ACL2(r) will behave much as it does now and will
ultimately be sound; but we have not yet argued the soundness of
every detail of the integration.
I-CLOSE -- ACL2(r) test for whether two numbers are infinitesimally close
I-LARGE -- ACL2(r) recognizer for infinitely large numbers
I-LIMITED -- ACL2(r) recognizer for limited numbers
I-SMALL -- ACL2(r) recognizer for infinitesimal numbers
REAL-LISTP -- ACL2(r) recognizer for a true list of real numbers
STANDARD-NUMBERP -- ACL2(r) recognizer for standard numbers
STANDARD-PART -- ACL2(r) function mapping limited numbers to standard numbers
There is only limited documentation on the non-standard features of
ACL2(r). We hope to provide more documentation for such features in
future releases. Please feel free to query the authors if you are
interested in learning more about ACL2(r). Gamboa's dissertation
may also be helpful.