Major Section: PROGRAMMING
Examples: (declare (ignore x y z)) (declare (ignorable x y z) (type integer i j k) (type (satisfies integerp) m1 m2)) (declare (xargs :guard (and (integerp i) (<= 0 i)) :guard-hints (("Goal" :use (:instance lemma3 (x (+ i j)))))))Some Related Topics
(optimize (safety 3))
. This is allowed
only at the top level of defun
forms. See any Common Lisp
documentation for more information.
Declarations in ACL2 may occur only where dcl
occurs below:
(DEFUN name args doc-string dcl ... dcl body) (DEFMACRO name args doc-string dcl ... dcl body) (LET ((v1 t1) ...) dcl ... dcl body) (MV-LET (v1 ...) term dcl ... dcl body) (FLET ((name args dcl ... dcl body) ...))Of course, if a form macroexpands into one of these (as
let*
expands
into nested let
s and our er-let*
expands into nested mv-let
s)
then declarations are permitted as handled by the macros involved.Declare
is defined in Common Lisp. See any Common Lisp documentation for
more information.