/usr/share/acl2-6.3/books/paco/utilities.acl2 is in acl2-books-source 6.3-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | (ld "acl2-customization.lsp") ; adds the :paco keyword command
(in-package "ACL2")
(defpkg "PACO"
'(
; ACL2 primitives:
ACL2-NUMBERP BAD-ATOM BAD-ATOM<=
BINARY-* BINARY-+ UNARY-- UNARY-/ < CAR CDR
CHAR-CODE CHARACTERP CODE-CHAR COMPLEX COMPLEX-RATIONALP COERCE
CONS CONSP DENOMINATOR EQUAL IF IMAGPART INTEGERP
INTERN-IN-PACKAGE-OF-SYMBOL NUMERATOR RATIONALP REALPART STRINGP
SYMBOL-NAME SYMBOL-PACKAGE-NAME SYMBOLP NOT EQ LENGTH ATOM ACONS
ENDP NULL = /= ZP ZIP NTH CHAR CONJUGATE
STANDARD-CHAR-P STRING ALPHA-CHAR-P UPPER-CASE-P LOWER-CASE-P
CHAR-UPCASE CHAR-DOWNCASE STRING-DOWNCASE STRING-UPCASE CHAR-EQUAL
STRING-EQUAL KEYWORDP IDENTITY REVAPPEND
REVERSE
; At one point I deleted from this list all the symbols that used
; EQLABLEP in their guards. I was then going to do the same for all
; symbols that used EQ. But then I realized that true-listp uses EQ.
; Deleting it would mean defining my own TRUE-LISTP-EQUAL which annoys
; me. I've decided to live in an ACL2-like world: logically there is
; no distinction between EQ and EQUAL and guards exist but are largely
; ignored.
EQL MEMBER ASSOC RASSOC REMOVE REMOVE-DUPLICATES POSITION
SUBSTITUTE SUBSETP SUBLIS SUBST
; These were omitted from the Posse East list.
floor ceiling truncate round mod rem evenp oddp zerop
plusp minusp min max abs signum lognot expt binary-append
nfix e0-ordinalp e0-ord-<
CHAR< CHAR> CHAR<= CHAR>= STRING< STRING> STRING<=
STRING>= ZPF INTEGER-LENGTH LOGNAND
LOGORC1 LOGORC2 LOGANDC1 LOGANDC2 LOGNOR LOGTEST SUBSEQ BUTLAST
ACL2-COUNT
; Primitives that must be in ACL2 to be recognized by the ACL2 rule
; builders. These were omitted from the Posse East list.
implies
iff
true-listp
len
; From *expandable-boot-strap-non-rec-fns*:
synp listp prog2$ force case-split
; Macros and constants that are imported into Paco so that they
; can be expanded into primitives:
quote
nil
t
lambda
declare
ignore
xargs
otherwise
int=
digit-char-p
intern
append
concatenate
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
rest
list*
the-fixnum
make-list
the-mv
the2s
i-limited
gc$
+ * - / > >= <= 1- 1+
logand
logeqv
logior
logxor
let
let*
list
cond
case
caaaar caaadr caaar caadar caaddr caadr caar cadaar cadadr cadar caddar
cadddr caddr cadr cdaaar cdaadr cdaar cdadar cdaddr cdadr cdar cddaar
cddadr cddar cdddar cddddr cdddr cddr
mv
mv-let
mv-nth
and or
&rest
progn
the
integer
; System level functions so the user can build an ACL2 logical world.
trace
untrace
lp
*main-lisp-package-name*
*common-lisp-symbols-from-main-lisp-package*
*common-lisp-specials-and-constants*
mutual-recursion
defun
defthm
defconst
defmacro
deflabel
in-package
verify-guards
in-theory
disable
enable
; These symbols are used in :do-not hints. Paco translates those
; hints with ACL2's translation mechanism, so these symbols are
; expected. Paco may not support all these processes, but detects the
; supported hint after translation.
preprocess
simplify
eliminate-destructors
fertilize
generalize
eliminate-irrelevance
ld
value
include-book
thm
local
encapsulate
; Used in the nume tracker
wormhole
wormhole-eval
wormhole-input
wormhole-status
make-wormhole-status
wormhole-data
set-wormhole-data
er-progn
assign
@
cw
msg
))
(set-verify-guards-eagerness 0)
(certify-book "utilities" ? t)
|