These notes provide pointers to potentially useful information related to ACL2.
On CS: Run /usr/local/bin/acl2.
On CCC: Due to a bug in our Common Lisp package, we can't save an ACL2 executable image. You therefore have to start ACL2 up manually using the following sequence of steps:
/home/kfisler/VerifTools/ACL2/acl2-sources/
gcl
[at a shell prompt; /usr/local/bin/gcl]
(in-package "ACL2")
[rest are commands at the gcl prompt]
(quick-compile-acl2 t t)
(initialize-acl2)
(LP)
[this gets you to the ACL2 command prompt]
On Windows: In theory, ACL2 should run under Windows once you have a Common Lisp installation. Allegro offers a 6-month trial version of their Common Lisp environment for academic purposes. However, this version cannot save images (the last step in the ACL2 installation instructions). Follow the installation instructions on the ACL2 pages up until the part about the *saved_acl2 files. Use the sequence of steps outlined for CCC above to start ACL2 within Allegro.
You may be able to get ACL2 running with GNU Common Lisp as well. If you are able to install GCL and want to build ACL2 on top of that, let me know and I'll send some pointers from the ACL2 team on how to do this.
On Linux: ACL2 should install easily on Linux using GNU Common Lisp.
I strongly encourage you to run ACL2 from within Emacs (see note
below). Divide your Emacs buffer into two windows (using C-x
2
). In one window, bring up a shell (using M-x
shell
) and invoke ACL2 from it. Develop your code in the other
window, and cut and paste definitions into the ACL2 window as needed.
Use the standard Emacs commands to browse proofs and save them to
file.
Note: When you type at the prompt, ACL2
captures each line as you end it with a carriage return (not when
you close the final parenthesis). If you make a mistake in a previous
line in a defintion, you cannot go back and edit the line. You must
break out of the current read-eval-print loop (REPL) using
Ctrl-C
(two if you're running inside of Emacs), then use
:q
to return to the top-level REPL. Developing your code
in a separate Emacs buffer avoids this inconvenience.
Warning: When you start ACL2, its header screen (version number, etc) should come up immediately. If you get lots of messages of the form
[SGC for 0 RELOCATABLE-BLOCKS pages..(1339 writable)..(T=3).GC finished],kill the ACL2 process. Increase your allowed heap size using
ulimit -d new_size
, where new_size is measured
in kbytes (the ACL2 start-up script sets this value to 2097148).
Invoke ACL2 again.
The ACL2 home page. Includes full system documentation.
Gary Leavens' table of syntactic differences between Scheme and Common Lisp
(good-bye)
.
(defconst *foo* 3)
).
:q
to return to the top-level REPL.
:ubt definition-name
at the prompt.
To back up one definition at a time, use :u
.