==========================================================================
These files were written by and are maintained by Matt Kaufmann and
Mike Gordon.  This README file is an abbreviated version (created by
MJCG) of Matt's longer original file.
==========================================================================

Contents:

.cert and .o files: Generated by (certify-book "...").

Makefile              To re-certify ACL2 books in this directory
README                This file
a2ml.lisp             ACL2 book to translate internal form ACL2 file to ML file
a2ml.csh              Shell wrapper for a2ml.lisp
axioms-essence.csh    Shell wrapper for a2ml.lisp, customized to handle
                        ACL2 source file axioms.lisp
                        (called in tests/round-trip/doit)
book-essence.lisp     Utility mapping an ACL2 input file to input for a2ml.csh
book-essence.csh      Shell wrapper for book-essence.lisp
check-file.lisp       Utility for checking round-trip output
untranslate-file.lisp Utility for generating file of pretty DEFP forms from
                        a file of DEFUN forms

obsolete/             Superseded files, to keep around for awhile

==========================================================================

Usage:

First do this, after suitably editing ../.acl2holrc.bash:

 source ../.acl2holrc.bash

To update tools after updating their sources:

 ./make

To map ACL2 source file axioms.lisp to input for a2ml.csh:

  ./axioms-essence.csh outfile

To map other than ACL2 source file axioms.lisp to input for a2ml.csh:

  ./book-essence.csh infile outfile

To convert a file of ACL defun, mutual-recursion, defaxiom, defthm
events into a file that can be read into HOL:

  ./a2ml.csh infile outfile

The outfile created will contain

  val _ = current_package := <package-name>

  val _ = sexp.acl2_list_ref := [<mlsexp1>, ... ,<mlsexpn>]

where <package-name> evaluates to an ML string (e.g. "ACL2") and
<mlsexp1>, ... ,<mlsexpn> are ML expressions of type mlsexp that
represent the corresponding ACL2 s-expressions in infile (the
apparently redundant "val _ = " is boilerplate needed if the file is
to be compiled).

==========================================================================

