built-in ACL2 functions
Major Section:  ACL2 Documentation
The built-in ACL2 functions that one typically uses in writing
programs are listed below.  See their individual documentations.  We
do not bother to document the some of the more obscure functions
provided by ACL2 that do not correspond to functions of Common
Lisp.
- * -- multiplication macro
- *STANDARD-CI* -- an ACL2 character-based analogue of CLTL's - *standard-input*
- *STANDARD-CO* -- the ACL2 analogue of CLTL's - *standard-output*
- *STANDARD-OI* -- an ACL2 object-based analogue of CLTL's - *standard-input*
- + -- addition macro
- - -- macro for subtraction and negation
- / -- macro for division and reciprocal
- /= -- test inequality of two numbers
- 1+ -- increment by 1
- 1- -- decrement by 1
- < -- less-than
- <= -- less-than-or-equal test
- = -- test equality (of two numbers, symbols, or characters)
- > -- greater-than test
- >= -- greater-than-or-equal test
- ABS -- the absolute value of a rational number
- ACL2-CUSTOMIZATION -- customizing ACL2 for a particular user
- ACL2-NUMBERP -- recognizer for numbers
- ACL2-USER -- a package the ACL2 user may prefer
- ACONS -- constructor for association lists
- 
- ALISTP -- recognizer for association lists
- ALPHA-CHAR-P -- recognizer for alphabetic characters
- AND -- conjunction
- 
- ARRAYS -- an introduction to ACL2 arrays.
- ASH -- arithmetic shift operation
- ASSOC -- look up key in association list, using - eqlas test
- ASSOC-EQ -- look up key in association list, using - eqas test
- ASSOC-EQUAL -- look up key in association list
- 
- ASSOC-STRING-EQUAL -- look up key, a string, in association list
- ATOM -- recognizer for atoms
- ATOM-LISTP -- recognizer for a true list of atoms
- BINARY-* -- multiplication function
- BINARY-+ -- addition function
- 
- BOOLEANP -- recognizer for booleans
- BUTLAST -- all but a final segment of a list
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- CAR -- returns the first element of a non-empty list, else - nil
- CASE -- conditional based on if-then-else using - eql
- CASE-MATCH -- pattern matching or destructuring
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- CDR -- returns the second element of a - conspair, else- nil
- CEILING -- division returning an integer by truncating toward positive infinity
- 
- CHAR -- the nth element (zero-based) of a string
- CHAR-CODE -- the numeric code for a given character
- 
- CHAR-EQUAL -- character equality without regard to case
- 
- 
- 
- 
- CHAR>= -- greater-than-or-equal test for characters
- CHARACTER-LISTP -- recognizer for a true list of characters
- 
- CHARACTERS -- characters in ACL2
- CODE-CHAR -- the character corresponding to a given numeric code
- COERCE -- coerce a character list to a string and a string to a list
- COMP -- compile some ACL2 functions
- COMPILATION -- compiling ACL2 functions
- COMPLEX -- create an ACL2 number
- COMPLEX-RATIONALP -- recognizes complex rational numbers
- CONCATENATE -- concatenate lists or strings together
- COND -- conditional based on if-then-else
- CONJUGATE -- complex number conjugate
- CONS -- pair and list constructor
- CONSP -- recognizer for cons pairs
- DECLARE -- declarations
- DEFCONST -- define a constant
- DEFPKG -- define a new symbol package
- DEFUN -- define a function symbol
- DENOMINATOR -- divisor of a ratio in lowest terms
- DIGIT-CHAR-P -- the number, if any, corresponding to a given character
- DIGIT-TO-CHAR -- map a digit to a character
- EIGHTH -- eighth member of the list
- ENDP -- recognizer for empty lists
- EQ -- equality of symbols
- EQL -- test equality (of two numbers, symbols, or characters)
- EQLABLE-ALISTP -- recognizer for a true list of pairs whose - cars are suitable for- eql
- EQLABLE-LISTP -- recognizer for a true list of objects each suitable for - eql
- 
- EQUAL -- true equality
- ER-PROGN -- perform a sequence of state-changing ``error triples''
- EVENP -- test whether an integer is even
- 
- EXPT -- exponential function
- FIFTH -- fifth member of the list
- FIRST -- first member of the list
- FIX -- coerce to a number
- 
- FLOOR -- division returning an integer by truncating toward negative infinity
- FMS -- - :(str alist co-channel state evisc) => state
- FMT -- formatted printing
- FMT1 -- - :(str alist col co-channel state evisc) => (mv col state)
- FOURTH -- fourth member of the list
- IDENTITY -- the identity function
- IF -- if-then-else function
- IFF -- logical ``if and only if''
- IFIX -- coerce to an integer
- ILLEGAL -- cause a hard error
- IMAGPART -- imaginary part of a complex number
- IMPLIES -- logical implication
- IMPROPER-CONSP -- recognizer for improper (non-null-terminated) non-empty lists
- 
- INT= -- test equality of two integers
- INTEGER-LENGTH -- number of bits in two's complement integer representation
- INTEGER-LISTP -- recognizer for a true list of integers
- INTEGERP -- recognizer for whole numbers
- INTERN -- create a new symbol in a given package
- 
- INTERSECTP-EQ -- test whether two lists of symbols intersect
- INTERSECTP-EQUAL -- test whether two lists intersect
- IO -- input/output facilities in ACL2
- IRRELEVANT-FORMALS -- formals that are used but only insignificantly
- KEYWORD-VALUE-LISTP -- recognizer for true lists whose even-position elements are keywords
- KEYWORDP -- recognizer for keywords
- LAST -- the last - cons(not element) of a list
- LENGTH -- length of a string or proper list
- LET -- binding of lexically scoped (local) variables
- LET* -- binding of lexically scoped (local) variables
- LIST -- build a list
- LIST* -- build a list
- LISTP -- recognizer for (not necessarily proper) lists
- LOGAND -- bitwise logical `and' of two integers
- LOGANDC1 -- bitwise logical `and' of two ints, complementing the first
- LOGANDC2 -- bitwise logical `and' of two ints, complementing the second
- LOGBITP -- the - ith bit of an integer
- LOGCOUNT -- number of ``on'' bits in a two's complement number
- LOGEQV -- bitwise logical equivalence of two integers
- LOGIOR -- bitwise logical inclusive or of two integers
- LOGNAND -- bitwise logical `nand' of two integers
- LOGNOR -- bitwise logical `nor' of two integers
- LOGNOT -- bitwise not of a two's complement number
- LOGORC1 -- bitwise logical inclusive or of two ints, complementing the first
- LOGORC2 -- bitwise logical inclusive or of two ints, complementing the second
- LOGTEST -- test if two integers share a `1' bit
- LOGXOR -- bitwise logical exclusive or of two integers
- LOWER-CASE-P -- recognizer for lower case characters
- 
- MAKE-LIST -- make a list of a given size
- MAX -- the larger of two rational numbers
- MEMBER -- membership predicate, using - eqlas test
- MEMBER-EQ -- membership predicate, using - eqas test
- 
- MIN -- the smaller of two rational numbers
- MINUSP -- test whether a rational number is negative
- MOD -- remainder using - floor
- MUTUAL-RECURSION -- define some mutually recursive functions
- MV -- returning multiple values
- MV-LET -- calling multi-valued ACL2 functions
- MV-NTH -- the mv-nth element (zero-based) of a list
- NFIX -- coerce to a natural number
- NINTH -- ninth member of the list
- NO-DUPLICATESP -- check for duplicates in a list (using - eqlfor equality)
- NO-DUPLICATESP-EQUAL -- check for duplicates in a list (using - equalfor equality)
- 
- NOT -- logical negation
- NTH -- the nth element (zero-based) of a list
- NTHCDR -- final segment of a list
- NULL -- recognizer for the empty list
- NUMERATOR -- dividend of a ratio in lowest terms
- ODDP -- test whether an integer is odd
- OR -- conjunction
- 
- PAIRLIS$ -- zipper together two lists
- PLUSP -- test whether a rational number is positive
- POSITION -- position of an item in a string or a list, using - eqlas test
- POSITION-EQ -- position of an item in a string or a list, using - eqas test
- POSITION-EQUAL -- position of an item in a string or a list
- PPROGN -- evaluate a sequence of forms that return state
- PROGN -- see the documentation for - er-progn
- PROOFS-CO -- the proofs character output channel
- PROPER-CONSP -- recognizer for proper (null-terminated) non-empty lists
- PUT-ASSOC-EQ -- modify an association list by associating a value with a key
- PUT-ASSOC-EQUAL -- modify an association list by associating a value with a key
- RASSOC -- look up value in association list, using - eqlas test
- RATIONAL-LISTP -- recognizer for a true list of rational numbers
- RATIONALP -- recognizer for whole numbers
- REALPART -- real part of a complex number
- REDEFINING-PROGRAMS -- an explanation of why we restrict redefinitions
- 
- REMOVE -- remove all occurrences, testing using - eql
- REMOVE-DUPLICATES -- remove duplicates from a string or (using - eql) a list
- 
- REST -- rest (- cdr) of the list
- REVAPPEND -- concatentate the reverse of one list to another
- REVERSE -- reverse a list
- RFIX -- coerce to a rational number
- ROUND -- division returning an integer by rounding off
- SECOND -- second member of the list
- SET-COMPILE-FNS -- have each function compiled as you go along.
- SET-DIFFERENCE-EQUAL -- elements of one list that are not elements of another
- SET-IGNORE-OK -- allow unused formals and locals without an - ignoredeclaration
- 
- SET-STATE-OK -- allow the use of STATE as a formal parameter
- SEVENTH -- seventh member of the list
- SIGNUM -- indicator for positive, negative, or zero
- SIXTH -- sixth member of the list
- 
- STANDARD-CHAR-P -- recognizer for standard characters
- STANDARD-CO -- the character output channel to which - ldprints
- STANDARD-OI -- the standard object input ``channel''
- 
- STRING-ALISTP -- recognizer for association lists with strings as keys
- 
- STRING-DOWNCASE -- in a given string, turn upper-case characters into lower-case
- STRING-EQUAL -- string equality without regard to case
- STRING-LISTP -- recognizer for a true list of strings
- STRING-UPCASE -- in a given string, turn lower-case characters into upper-case
- STRING< -- less-than test for strings
- STRING<= -- less-than-or-equal test for strings
- STRING> -- greater-than test for strings
- STRING>= -- less-than-or-equal test for strings
- STRINGP -- recognizer for strings
- STRIP-CARS -- collect up all first components of pairs in a list
- STRIP-CDRS -- collect up all second components of pairs in a list
- SUBLIS -- substitute an alist into a tree
- SUBSEQ -- subsequence of a string or list
- SUBSETP -- test if every - memberof one list is a- memberof the other
- SUBSETP-EQUAL -- check if all members of one list are members of the other
- SUBST -- a single substitution into a tree
- SYMBOL-< -- less-than test for symbols
- SYMBOL-ALISTP -- recognizer for association lists with symbols as keys
- SYMBOL-LISTP -- recognizer for a true list of symbols
- SYMBOL-NAME -- the name of a symbol (a string)
- SYMBOL-PACKAGE-NAME -- the name of the package of a symbol (a string)
- SYMBOLP -- recognizer for symbols
- TAKE -- initial segment of a list
- TENTH -- tenth member of the list
- THE -- run-time type check
- THIRD -- third member of the list
- TRUE-LIST-LISTP -- recognizer for true (proper) lists of true lists
- TRUE-LISTP -- recognizer for proper (null-terminated) lists
- TRUNCATE -- division returning an integer by truncating toward 0
- TYPE-SPEC -- type specifiers in declarations
- UNARY-- -- arithmetic negation function
- UNARY-/ -- reciprocal function
- UNION-EQ -- union of two lists of symbols
- 
- UPDATE-NTH -- modify a list by putting the given value at the given position
- UPPER-CASE-P -- recognizer for upper case characters
- 
- ZEROP -- test an acl2-number against 0
- ZIP -- testing an ``integer'' against 0
- ZP -- testing a ``natural'' against 0
See any documentation for Common Lisp for more details on many of
these functions.
 
 