• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Recursion-and-induction
      • Hons-and-memoization
      • Events
      • Parallelism
      • History
      • Programming
      • Operational-semantics
      • Real
      • Start-here
        • Gentle-introduction-to-ACL2-programming
        • ACL2-tutorial
        • About-ACL2
          • Recursion-and-induction
          • Operational-semantics
          • Soundness
          • Release-notes
            • Note-2-8
            • Note-2-7
            • Note-8-6
            • Note-8-7
            • Note-8-2
            • Note-7-0
            • Note-8-5
            • Note-8-3
            • Note-8-1
            • Note-8-0
            • Note-7-1
              • Note-7-1-books
                • Note-7-1-vl
            • Note-6-4
            • Note-2-9-3
            • Note-2-9-1
            • Note-8-4
            • Note-7-2
            • Note-6-5
            • Note-4-0
            • Note-2-9-2
            • Note-3-6
            • Note-3-3
            • Note-3-2-1
            • Note-3-0-1
            • Note-2-9-5
            • Note-2-5
            • Note-1-5
            • Note-6-1
            • Note-4-3
            • Note-4-2
            • Note-4-1
            • Note-3-5
            • Note-3-4
            • Note-3-2
            • Note-3-0-2
            • Note-2-9-4
            • Note-2-9
            • Note-1-8
            • Note-1-7
            • Note-1-6
            • Note-1-4
            • Note-1-3
            • Note-7-4
            • Note-7-3
            • Note-6-3
            • Note-6-2
            • Note-6-0
            • Note-5-0
            • Note-1-9
            • Note-2-2
            • Note-1-8-update
            • Note-3-5(r)
            • Note-2-3
            • Release-notes-books
            • Note-3-6-1
            • Note-1-2
            • Note-2-4
            • Note-2-6
            • Note-2-0
            • Note-3-0
            • Note-3-2(r)
            • Note-2-7(r)
            • Note-1-1
            • Note-3-4(r)
            • Note-3-1
            • Note-2-8(r)
            • Note-2-1
            • Note-2-9(r)
            • Note-2-6(r)
            • Note-3-1(r)
            • Note-3-0(r)
            • Note-3-0-1(r)
            • Note-2-5(r)
            • Note-4-3(r)
            • Note-4-2(r)
            • Note-4-1(r)
            • Note-4-0(r)
            • Note-3-6(r)
            • Note-3-3(r)
            • Note-3-2-1(r)
          • Workshops
          • ACL2-tutorial
          • Version
          • Acknowledgments
          • Using-ACL2
          • Releases
          • How-to-contribute
          • Pre-built-binary-distributions
          • Common-lisp
          • Installation
          • Mailing-lists
          • Git-quick-start
          • Copyright
          • ACL2-help
      • Miscellaneous
      • Output-controls
      • Bdd
      • Macros
      • Installation
      • Mailing-lists
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Note-7-1
  • Release-notes-books

Note-7-1-books

Release notes for the ACL2 Community Books for ACL2 7.1 (May 2015)

The following is a brief summary of changes made to the community-books between the releases of ACL2 7.0 and 7.1.

The acl2-books Wiki page on Release Version Numbers gives the Git/SVN revision numbers corresponding to releases. See also note-7-1 for the changes made to ACL2 itself. For additional details, you may also see the raw commit log.

Deleted Books and Stubs

When we move a book, we often add a stub book in its previous location to help you transition your include-book commands. The build::cert.pl build system prints warnings when a stub book is being included. Stub books have a lifespan of one release. The following books were stubs in ACL2 7.0, so we've deleted them.

  Previous Location                          Replacement
--------------------------------------------------------------------------------
  centaur/vl/mlib/context                    centaur/vl/parsetree
  centaur/vl/util/toposort                   centaur/depgraph/toposort
  centaur/vl/transforms/xf-unparameterize    centaur/vl/transforms/unparam/top
  misc/{qi,qi-correct}                       centaur/ubdds/lite
  oslib/logic-defs                           oslib/top-logic
  tools/defredundant                         std/util/defredundant
--------------------------------------------------------------------------------

The directory fix-cert/ has been deleted, as it is no longer necessary now that it is possible to move the system books directory after certifying its books (see note-7-1).

The directory regex/ has been moved to projects/regex/.

New Libraries and Documentation

David Russinoff has contributed a new version of the rtl library: rtl/rel10/. This time the new version depends on a previous version, namely, rtl/rel9/. The new rtl/rel10/ library has, in turn, been adapted to reside in a new "RTL" package; the result is rtl/rel11/.

Marijn Heule's drat-trim tool, for checking SAT solver proofs, is now available in tools/drat-trim.

Matt Kaufmann and Cuong Chau have formalized the overspill property in ACL2(r), see nonstd/nsa/overspill.lisp.

The new clause-processors/induction book demonstrates a (not very practical) clause processor that does induction.

The new directory projects/fifo has a list-based FIFO implementation, that has some properties proven about it.

The new book books/tools/include-an-arithmetic-book.lisp provides short-hand includes of the arithmetic libraries, including various configurations of arithmetic-5.

The misc/assert book is now documented; see for instance assert!.

The documentation for data-structures is now included in the manual; previously it was excluded because of name conflicts with other libraries, but these have now been resolved.

Name Changes

As mentioned above, the newest rtl library is now in an RTL package.

The bitops library is now in a new BITOPS package. See below (under ``bitops'') for more information and suggestions about porting books.

Renamed remove-keywords to remove-any-keywords in coi/nary/nary.lisp to avoid a name conflict between the coi and ccg books; also updated the nary workshop books.

std

The b* book has moved from tools/bstar to std/util/bstar. There is a stub in the previous location. As a special compatibility measure, this stub will be kept available for two releases.

Added new print-legibly and print-compressed functions to std/io. These can print to :object channels with or without serialize-style compression, and have the necessary theorems about state and output-channel preservation.

There is new syntactic sugar based on define's named return values. The new defret macro offers a more comfortable syntax for proving theorems about return values by their name. Also, the new ret binder for b* allows you to name the bundled return values from a define and then access individual components using a C-like or std::defaggregate/fty::defprod-like . syntax.

The define macro now checks the arity of :returns specifiers when possible.

Some std/lists books have been tweaked:

  • The ACL2-count book now provides stronger rules.
  • The equal-sets book now includes the lemma set-equiv-of-nil.
  • The append book now includes a few rules about (ca/dr (append ...)) to std/lists. (Two of the new rules are disabled, and there's a theory invariant to make sure things stay reasonable.)
  • The duplicity book now have stronger theorems relating duplicity to member-equal.

oslib

Added a new oslib::universal-time function.

Fixed a raw lisp bug with the definition of @9see oslib::ls), and added a regression test.

Fixed minor bugs with oslib::copy.

bitops

Bitops is now in a package. To minimize backwards incompatibility, the new package imports a lot of stuff that you might not expect. For instance all of the logops-definitions, and their recursive ** variants are still found in the ACL2 package, as are most of the bitops rulesets, its new function definitions, and many frequently instantiated theorems. When updating your books, you may find it convenient to import *bitops-exports* into packages that use bitops functions.

Extended the bitops::bitops/merge book with several new 256- and 512-bit merges, merge-8-u2s, and improved its documentation.

Added nth-slice128.

fty

The case macros from fty::defflexsum and fty::deftranssum now require a variable, and cannot bind that variable itself, because the syntax for doing so was too weird and unintuitive. They can now also be used to carry out type-checks, e.g., (foo-case x :mytag) now returns true when x has tag :mytag.

The macros defoption and deftranssum macros, formerly part of vl, are now integrated into the fty::deftypes framework.

xdoc

The fancy viewer's jump-to box should perform better. It now suggest exact name matches first and otherwise shows results in importance order, instead of alphabetical order, which may be better when there are many matches.

The fancy viewer now features a mobile-friendly version with many features. This should greatly improve access to ACL2 documentation at parties, sporting events, and other social occasions.

Fixed a bug with <em> tag handling that affected the :xdoc command and Emacs-based ACL2-doc tool.

Fixed a bug with using multiple defsection extensions with the same name. Defsection now requires a non-nil symbol as the section name.

As the manual has grown substantially, some memory management measures have been taken in doc/top.lisp.

quicklisp

The approach to distributing Common Lisp libraries has been updated to use the new Quicklisp bundles feature. Some additional Common Lisp libraries have been added to the bundle.

The tshell library is now based on the Shellpool Common Lisp library (via quicklisp). This may improve reliability and cross-lisp portability for tshell itself and also for libraries like satlink which are based on it.

vl, esim, and now vl2014

VL and ESIM have undergone major changes, including a fork of VL. For details about these changes, see note-7-1-vl.

Other Libraries

Ben Selfridge's leftist-trees library is now available under an MIT/X11 style license instead of the GNU General Public License.

The bounding theorems for logext in ihs/logops-definitions have been tightened.

For the tau-system, there is now a unary-- bounder in tau/bounders/elementary-bounders.

The defsort macro has been enhanced to better support the fixtype discipline of the fty library. In support of this, it now requires a stricter transitivity property, i.e., the comparison function must support unconditional transitivity, regardless of element type. (This is typically easy to achieve by using << as a fallback in case of malformed elements.)

The Codewalker demo books have been improved to use built-in function nat-listp and weaken the hyps (state invariant) so that the state components consist of integers, not naturals.

gl now uses an improved theory for better def-gl-clause-processor event performance.

The template-subst tool now has some extended repetition capabilities.

Various other libraries have received minor cleanups.

Build System Updates

build::cert.pl, et al. now tolerate ( include-book... instead of (include-book..., etc.

Errors during portcullis events (i.e., .acl2 files) should now cause certification to fail; many books have been updated to avoid problems that were, until now, just being ignored.

Various updates have been made to the Jenkins scripts to keep things up to date.

For most Lisps, build::cert.pl will now include garbage collection messages in output logs files. This may occasionally be useful when debugging performance issues.

Subtopics

Note-7-1-vl
Notes about changes to vl and esim in ACL2 Version 7.1.