EVENTS
functions that extend the logic
Major Section: ACL2 Documentation
Some Related Topics
-
ASSERT-EVENT -- assert that a given form returns a non-nil
value
COMP -- compile some ACL2 functions
DEFABBREV -- a convenient form of macro definition for simple expansions
DEFABSSTOBJ -- define a new abstract single-threaded object
-
DEFATTACH -- execute constrained functions using corresponding attached functions
-
DEFCHOOSE -- define a Skolem (witnessing) function
-
DEFCONST -- define a constant
-
DEFEQUIV -- prove that a function is an equivalence relation
DEFEVALUATOR -- introduce an evaluator function
DEFEXEC -- attach a terminating executable function to a definition
-
-
DEFMACRO -- define a macro
DEFMACRO-LAST -- define a macro that returns its last argument, but with side effects
DEFN -- definition with guard t
-
DEFPKG -- define a new symbol package
DEFPROXY -- define a non-executable :
program
-mode function for attachment
DEFPUN -- define a tail-recursive function symbol
DEFREFINEMENT -- prove that equiv1
refines equiv2
DEFSTOBJ -- define a new single-threaded object
DEFSTUB -- stub-out a function symbol
-
-
DEFTHM -- prove and name a theorem
DEFTHMD -- prove and name a theorem and then disable it
DEFTTAG -- introduce a trust tag (ttag)
DEFUN -- define a function symbol
DEFUN-INLINE -- define a potentially inlined function symbol and associated macro
DEFUN-NOTINLINE -- define a not-to-be-inlined function symbol and associated macro
DEFUN-NX -- define a non-executable function symbol
DEFUN-SK -- define a function whose body has an outermost quantifier
DEFUND -- define a function symbol and then disable it
DEFUND-INLINE -- define a potentially disabled, inlined function symbol and associated macro
DEFUND-NOTINLINE -- define a disabled, not-to-be-inlined function symbol and associated macro
ENCAPSULATE -- hide some events and/or constrain some functions
EVISC-TABLE -- support for abbreviated output
IN-ARITHMETIC-THEORY -- designate theory for some rewriting done for non-linear arithmetic
IN-THEORY -- designate ``current'' theory (enabling its rules)
-
LOCAL -- hiding an event in an encapsulation or book
MAKE-EVENT -- evaluate (expand) a given form and then evaluate the result
MEMOIZE -- turn on memoization for a specified function
MUTUAL-RECURSION -- define some mutually recursive functions
PROFILE -- turn on profiling for one function
-
PROGN! -- evaluate some forms, not necessarily events
REGENERATE-TAU-DATABASE -- regenerate the tau database relative to the current enabled theory
-
-
-
SET-BODY -- set the definition body
-
TABLE -- user-managed tables
-
UNMEMOIZE -- turn off memoization for the specified function
VALUE-TRIPLE -- compute a value, optionally checking that it is not nil
-
VERIFY-TERMINATION -- convert a function from :program mode to :logic mode
Any extension of the syntax of ACL2 (i.e., the definition of a new
constant or macro), the axioms (i.e., the definition of a function),
or the rule database (i.e., the proof of a theorem), constitutes a
logical ``event.'' Events change the ACL2 logical world
(see world). Indeed, the only way to change the ACL2
world is via the successful evaluation of an event function.
Every time the world is changed by an event, a landmark is left
on the world and it is thus possible to identify the world
``as of'' the evaluation of a given event. An event may introduce
new logical names. Some events introduce no new names (e.g.,
verify-guards
), some introduce exactly one (e.g., defmacro
and
defthm
), and some may introduce many (e.g., encapsulate
).
ACL2 typically completes processing of an event by printing a summary that
includes a breakdown of runtime (cpu time) used and, unless proofs are
skipped (see ld-skip-proofsp) or summary output is inhibited
(see set-inhibit-output-lst), information about the proof attempt
(if any) including a list of rules used, a summary of warnings, and the
number of ``prover steps'' (if any; see with-prover-step-limit). A detail:
The time is calculated using Common Lisp function get-internal-run-time
,
which may ignore calls to external tools (see sys-call and
see clause-processor).
See embedded-event-form for a discussion of events permitted in
books.