EVENTS
functions that extend the logic
Major Section: ACL2 Documentation
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
-
DEFCHOOSE -- define a Skolem (witnessing) function
DEFCONG -- prove that one equivalence relation preserves another in a given
argument position of a given 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
DEFPKG -- define a new symbol package
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-SK -- define a function whose body has an outermost quantifier
DEFUND -- define a function symbol and then disable it
ENCAPSULATE -- constrain some functions and/or hide some events
EVISC-TABLE -- support for abbreviated output
IN-ARITHMETIC-THEORY -- designate ``current'' theory for some rewriting done in 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
MUTUAL-RECURSION -- define some mutually recursive functions
-
PROGN! -- evaluate some forms, not necessarily events
-
SET-BODY -- set the definition body
-
TABLE -- user-managed tables
-
-
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 data base (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
).