Connecting HOL to ACL2
Version 1.5 (obsolete)
This paper is part of a project to link the
HOL4 and ACL2 systems. Warren Hunt and I started writing it during
Warren's summer visit to Cambridge in 2005. It was revised following
detailed comments from Matt Kaufmann and others.
During and after Matt's later visit to Cambridge, the ideas were
refined and the implemention started by Mike and Warren revised and
Version 1.5 is obsolete and mainly describes the work done by Mike
and Warren, but it incorporates some comments from Matt.
of the paper reflects our current thinking and describes
changes made to our methodology and tools following Matt's visit.
The main developments from Version 1.5 to Version 2.4 are:
Section 5 of Version 1.5 contains some examples that were done with
early prototypes of our tools. These use natural numbers and have not
yet been redone with complex rationals, so are missing from Version
- Numbers are modelled correctly by complex rationals. The HOL
defined using a rational number package due to Jens Brandt of
University of Kaiserslautern.
- The exact ACL2 names of functions and constants are used in
HOL. Since these names may violate the lexographic rules of the HOL
parser, each ACL2 function is given a HOL friendly name.
- All the 31 ACL2 primitives have been defined
in HOL. Thus the HOL SEXP layer is now complete and fully implements all of the ACL2 logic.
- Matt has implemented in ACL2 some
tools for moving definitions, theorems and axioms between HOL and
- There are two appendices.
- Appendix 1 partially documents the tools implemented so far;
- Appendix 2 lists the HOL definitions of the ACL2 primitives.
MJCG, Jan 16, 2006