Major Section: EVENTS
Example: (table macro-aliases-table 'append 'binary-append)This example associates the function symbol
binary-append with the
macro name append . As a result, the name append may be used as a
runic designator (see theories) by the various theory
functions. Thus, for example, it will be legal to write
(in-theory (disable append))as an abbreviation for
(in-theory (disable binary-append))which in turn really abbreviates
(in-theory (set-difference-theories (current-theory :here) '(binary-append)))or very generallyGeneral Form: (table macro-aliases-table 'macro-name 'function-name)
(table macro-aliases-table macro-name-form function-name-form)where
macro-name-form and function-name-form evaluate,
respectively, to a macro name and a function name in the current
ACL2 world. See table for a general discussion of tables and
the table event used to manipulate tables.
The table macro-aliases-table is an alist that associates
macro symbols with function symbols, so that macro names may be used
as runic designators (see theories). For a convenient way to
add entries to this table, see add-macro-alias. To remove
entries from the table with ease, see remove-macro-alias.
This table is used by the theory functions. For example, in order
that (disable append) be interpreted as (disable binary-append),
it is necessary that the example form above has been executed. In
fact, this table does indeed associate many of the macros provided
by the ACL2 system, including append , with function symbols.
Loosely speaking, it only does so when the macro is ``essentially
the same thing as'' a corresponding function; for example,
(append x y) and (binary-append x y) represent the same term,
for any expressions x and y.