Major Section: EVENTS
Examples: (local (defthm hack1 (implies (and (acl2-numberp x) (acl2-numberp y) (equal (* x y) 1)) (equal y (/ x)))))where(local (defun double-naturals-induction (a b) (cond ((and (integerp a) (integerp b) (< 0 a) (< 0 b)) (double-naturals-induction (1- a) (1- b))) (t (list a b)))))
General Form: (local ev)
ev
is an event form. If the current default defun-mode
(see default-defun-mode) is :
logic
and ld-skip-proofsp
is
nil
or t
, then (local ev)
is equivalent to ev
. But if
the current default defun-mode is :
program
or if
ld-skip-proofsp
is '
include-book
, then (local ev)
is a
no-op
. Thus, if such forms are in the event list of an
encapsulate
event or in a book, they are processed when the
encapsulation or book is checked for admissibility in :
logic
mode
but are skipped when extending the host world. Such events are thus
considered ``local'' to the verification of the encapsulation or
book. The non-local events are the ones ``exported'' by the
encapsulation or book. See encapsulate for a thorough
discussion. Also see local-incompatibility for a discussion of
a commonly encountered problem with such event hiding: you can't
make an event local if its presence is required to make sense of a
non-local one.
Note that events that change the default defun-mode, and in fact any
events that set the acl2-defaults-table
, are disallowed inside
the scope of local
. See embedded-event-form.