ACL2 Version 1.7 (released October 1994) Notes
Include-book now takes (optionally) an additional keyword argument, indicating whether a compiled file is to be loaded. The default behavior is unchanged, except that a warning is printed when a compiled file is not loaded. See include-book.
A markup language for documentation strings has been implemented, and many of the source files have been marked up using this language (thanks largely to the efforts of Laura Lawless). See markup. Moreover, there are translators that we have used to provide versions of the ACL2 documentation in info (for use in emacs), html (for Mosaic), and tex (for hardcopy) formats.
A new event
We used to ignore corollaries when collecting up the axioms introduced about constrained functions. That bug has been fixed. We thank John Cowles for bringing this bug to our attention.
The macro defstub now allows a
A new command nqthm-to-ACL2 has been added to help Nqthm users to make the transition to ACL2. See nqthm-to-ACL2, which also includes a complete listing of the relevant tables.
Many function names, especially of the form ``foo
A complete list of these changes may be found at the end of this note. All
of them except
Accumulated persistence has been implemented. It is not connected to
ACL2 now accepts
A new table, macro-aliases-table, has been implemented, that
associates macro names with function names. So for example, since append is associated with binary-append, the form
The implementation of conditional metalemmas has been modified so that the metafunction is applied before the hypothesis metafunction is applied. See meta.
The Common Lisp functions acons and endp have been defined in the ACL2 logic.
We have added the symbol declare to the list
A new hint,
It used to be that if
The table
A command
Compilation via
Here are some less important changes, additions, and so on.
Unlike previous releases, we have not proved all the theorems in
We used to (accidentally) prohibit the ``redefinition'' of a table as a function. That is no longer the case.
The check for whether a corollary follows tautologically has been sped up, at the cost of making the check less ``smart'' in the following sense: no longer do we expand primitive functions such as implies before checking this propositional implication.
The command ubt! has been modified so that it never causes or reports an error. See ubt!.
ACL2 now works in Harlequin LispWorks.
The user can now specify the
The name of the system is now ``ACL2''; no longer is it ``Acl2''.
The raw lisp counterpart of theory-invariant is now defined to be a no-op as is consistent with the idea that it is just a call of table.
A bug was fixed that caused proof-builder instructions to be
executed when ld-skip-proofsp was
The function rassoc has been added, along with a corresponding
function used in its guard,
The in-theory event and hint now print a warning not only when
certain ``primitive''
The modified version of
The system now prints an observation when a form is skipped because the
default color is
Additional protection exists when you submit a form to raw Common Lisp that should only be submitted inside the ACL2 read-eval-print loop.
Here is a complete list of the changes in function names described near the top of this note, roughly of the form
foo-lst --> foo-listp
meaning: the name ``
symbolp-listp --> symbol-listp list-of-symbolp-listp --> symbol-list-listp {for consistency with change to symbol-listp} rational-lst --> rational-listp {which in fact was already defined as well} integer-lst --> integer-listp character-lst --> character-listp stringp-lst --> string-listp 32-bit-integer-lst --> 32-bit-integer-listp typed-io-lst --> typed-io-listp open-channel-lst --> open-channel-listp readable-files-lst --> readable-files-listp written-file-lst --> written-file-listp read-file-lst --> read-file-listp writeable-file-lst --> writable-file-listp {note change in spelling of ``writable''} writeable-file-lst1 --> writable-file-listp1 pseudo-termp-lst --> pseudo-term-listp hot-termp-lst --> hot-term-listp {by analogy with pseudo-term-listp} weak-termp-lst --> weak-term-listp weak-termp-lst-lst --> weak-termp-list-listp ts-builder-case-lstp -> ts-builder-case-listp quotep-lst --> quote-listp termp-lst --> term-listp instr-lst --> instr-listp spliced-instr-lst --> spliced-instr-listp rewrite-fncallp-lst --> rewrite-fncallp-listp every-occurrence-equiv-hittablep1-lst --> every-occurrence-equiv-hittablep1-listp some-occurrence-equiv-hittablep1-lst --> some-occurrence-equiv-hittablep1-listp {by analogy with the preceding, even though it's a ``some'' instead of ``all'' predicate] almost-quotep1-lst --> almost-quotep1-listp ffnnames-subsetp-lst --> ffnnames-subsetp-listp boolean-lstp --> boolean-listp subst-expr1-lst-okp --> subst-expr1-ok-listp