This file is indexed.

/usr/share/acl2-6.3/books/str/strval.cert is in acl2-books-certs 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
(IN-PACKAGE "ACL2")
"ACL2 Version 6.3"
:BEGIN-PORTCULLIS-CMDS
(INCLUDE-BOOK "cutil/portcullis" :DIR :SYSTEM)
:END-PORTCULLIS-CMDS
:EXPANSION-ALIST
((4 RECORD-EXPANSION (DEFSECTION STR::OCTAL-DIGITP :PARENTS (STR::NUMBERS) :SHORT "Recognizer for characters #\\0 through #\\7." :LONG "<p>@(call octal-digitp) is the octal alternative to @(see digitp).</p>" (DEFINLINED STR::OCTAL-DIGITP (X) (DECLARE (TYPE CHARACTER X)) (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (AND (<= (CHAR-CODE #\0) STR::CODE) (<= STR::CODE (CHAR-CODE #\7))))) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::OCTAL-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::OCTAL-DIGITP STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))) (DEFTHM STR::DIGITP-WHEN-OCTAL-DIGITP (IMPLIES (STR::OCTAL-DIGITP X) (STR::DIGITP X)) :HINTS (("Goal" :IN-THEORY (ENABLE STR::DIGITP))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGITP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::OCTAL-DIGITP (X) (DECLARE (TYPE CHARACTER X)) (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (AND (<= (CHAR-CODE #\0) STR::CODE) (<= STR::CODE (CHAR-CODE #\7))))) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::OCTAL-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::OCTAL-DIGITP STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))) (DEFTHM STR::DIGITP-WHEN-OCTAL-DIGITP (IMPLIES (STR::OCTAL-DIGITP X) (STR::DIGITP X)) :HINTS (("Goal" :IN-THEORY (ENABLE STR::DIGITP)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::OCTAL-DIGITP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizer for characters #\\0 through #\\7.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGITP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call octal-digitp) is the octal alternative to @(see digitp).</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::OCTAL-DIGITP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizer for characters #\\0 through #\\7.") (:LONG . "<p>@(call octal-digitp) is the octal alternative to @(see digitp).</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|OCTAL-DIGITP$INLINE|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-OCTAL-DIGITP-1|)
@(def |STR|::|DIGITP-WHEN-OCTAL-DIGITP|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::OCTAL-DIGITP)))))) (VALUE-TRIPLE (QUOTE STR::OCTAL-DIGITP))))) (5 RECORD-EXPANSION (DEFSECTION STR::OCTAL-DIGIT-LISTP :PARENTS (STR::NUMBERS) :SHORT "Recognizes lists of @(see octal-digitp) characters." (DEFUND STR::OCTAL-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD (CHARACTER-LISTP X))) (IF (ATOM X) T (AND (STR::OCTAL-DIGITP (CAR X)) (STR::OCTAL-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGIT-LISTP))) (DEFTHM STR::DIGIT-LISTP-WHEN-OCTAL-DIGIT-LISTP (IMPLIES (STR::OCTAL-DIGIT-LISTP X) (STR::DIGIT-LISTP X)) :HINTS (("Goal" :IN-THEORY (ENABLE STR::DIGIT-LISTP)))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::OCTAL-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGIT-LISTP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::OCTAL-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD (CHARACTER-LISTP X))) (IF (ATOM X) T (AND (STR::OCTAL-DIGITP (CAR X)) (STR::OCTAL-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGIT-LISTP))) (DEFTHM STR::DIGIT-LISTP-WHEN-OCTAL-DIGIT-LISTP (IMPLIES (STR::OCTAL-DIGIT-LISTP X) (STR::DIGIT-LISTP X)) :HINTS (("Goal" :IN-THEORY (ENABLE STR::DIGIT-LISTP)))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::OCTAL-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::OCTAL-DIGIT-LISTP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizes lists of @(see octal-digitp) characters.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGIT-LISTP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::OCTAL-DIGIT-LISTP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizes lists of @(see octal-digitp) characters.") (:LONG . "

<h3>Definitions and Theorems</h3>@(def |STR|::|OCTAL-DIGIT-LISTP|)
@(def |STR|::|DIGIT-LISTP-WHEN-OCTAL-DIGIT-LISTP|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-OCTAL-DIGIT-LISTP-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::OCTAL-DIGIT-LISTP)))))) (VALUE-TRIPLE (QUOTE STR::OCTAL-DIGIT-LISTP))))) (6 RECORD-EXPANSION (DEFSECTION STR::PARSE-OCTAL-FROM-CHARLIST :PARENTS (STR::NUMBERS) :SHORT "Parse an octal number from the beginning of a character list." :LONG "<p>This is like @(call parse-nat-from-charlist), but deals with octal
digits and returns their octal value.</p>" (DEFUND STR::PARSE-OCTAL-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((STR::OCTAL-DIGITP (CAR X)) (LET ((STR::DIGIT-VAL (STR::DIGIT-VAL (CAR X)))) (STR::PARSE-OCTAL-FROM-CHARLIST (CDR X) (+ STR::DIGIT-VAL (* 8 (LNFIX STR::VAL))) (+ 1 (LNFIX LEN))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-OCTAL-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-OCTAL-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-OCTAL-FROM-CHARLIST)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::PARSE-OCTAL-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((STR::OCTAL-DIGITP (CAR X)) (LET ((STR::DIGIT-VAL (STR::DIGIT-VAL (CAR X)))) (STR::PARSE-OCTAL-FROM-CHARLIST (CDR X) (+ STR::DIGIT-VAL (* 8 (LNFIX STR::VAL))) (+ 1 (LNFIX LEN))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-OCTAL-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-OCTAL-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::PARSE-OCTAL-FROM-CHARLIST)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Parse an octal number from the beginning of a character list.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-OCTAL-FROM-CHARLIST))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>This is like @(call parse-nat-from-charlist), but deals with octal
digits and returns their octal value.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::PARSE-OCTAL-FROM-CHARLIST) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Parse an octal number from the beginning of a character list.") (:LONG . "<p>This is like @(call parse-nat-from-charlist), but deals with octal
digits and returns their octal value.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|PARSE-OCTAL-FROM-CHARLIST|)
@(def |STR|::|NATP-OF-PARSE-OCTAL-FROM-CHARLIST|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::PARSE-OCTAL-FROM-CHARLIST)))))) (VALUE-TRIPLE (QUOTE STR::PARSE-OCTAL-FROM-CHARLIST))))) (7 RECORD-EXPANSION (DEFSECTION STR::OCTAL-DIGIT-LIST-VALUE :PARENTS (STR::NUMBERS) :SHORT "Coerces a list of octal digits into a natural number." :LONG "<p>@(call octal-digit-list-value) is like @(see digit-list-value) but
for octal numbers.</p>

<p>See also @(see parse-octal-from-charlist) for a more flexible function that
can tolerate non-octal digits after the number.</p>" (DEFINLINED STR::OCTAL-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::OCTAL-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-OCTAL-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-OCTAL-DIGIT-LIST-VALUE (NATP (STR::OCTAL-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-OCTAL-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::OCTAL-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 10) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 668))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGIT-LIST-VALUE)) (RECORD-EXPANSION (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::OCTAL-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::OCTAL-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-OCTAL-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-OCTAL-DIGIT-LIST-VALUE (NATP (STR::OCTAL-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-OCTAL-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::OCTAL-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 10) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 668)))))) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::OCTAL-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::OCTAL-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-OCTAL-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::OCTAL-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-OCTAL-DIGIT-LIST-VALUE (NATP (STR::OCTAL-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-OCTAL-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-OCTAL-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::OCTAL-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (RECORD-EXPANSION (LOCAL (ASSERT! (AND (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 10) (EQUAL (STR::OCTAL-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 668)))) (LOCAL (VALUE-TRIPLE :ELIDED)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::OCTAL-DIGIT-LIST-VALUE)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Coerces a list of octal digits into a natural number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::OCTAL-DIGIT-LIST-VALUE))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call octal-digit-list-value) is like @(see digit-list-value) but
for octal numbers.</p>

<p>See also @(see parse-octal-from-charlist) for a more flexible function that
can tolerate non-octal digits after the number.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::OCTAL-DIGIT-LIST-VALUE) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Coerces a list of octal digits into a natural number.") (:LONG . "<p>@(call octal-digit-list-value) is like @(see digit-list-value) but
for octal numbers.</p>

<p>See also @(see parse-octal-from-charlist) for a more flexible function that
can tolerate non-octal digits after the number.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|OCTAL-DIGIT-LIST-VALUE$INLINE|)
@(def |STR|::|NATP-OF-OCTAL-DIGIT-LIST-VALUE|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-OCTAL-DIGIT-LIST-VALUE-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::OCTAL-DIGIT-LIST-VALUE)))))) (VALUE-TRIPLE (QUOTE STR::OCTAL-DIGIT-LIST-VALUE))))) (8 RECORD-EXPANSION (DEFSECTION STR::HEX-DIGITP :PARENTS (STR::NUMBERS) :SHORT "Recognizer for characters 0-9, A-F, and a-f." :LONG "<p>@(call hex-digitp) is the hexadecimal alternative to @(see digitp).</p>" (DEFINLINED STR::HEX-DIGITP (X) (DECLARE (TYPE CHARACTER X)) (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (OR (AND (<= (CHAR-CODE #\0) STR::CODE) (<= STR::CODE (CHAR-CODE #\9))) (AND (<= (CHAR-CODE #\a) STR::CODE) (<= STR::CODE (CHAR-CODE #\f))) (AND (<= (CHAR-CODE #\A) STR::CODE) (<= STR::CODE (CHAR-CODE #\F)))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::HEX-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::HEX-DIGITP STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGITP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::HEX-DIGITP (X) (DECLARE (TYPE CHARACTER X)) (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (OR (AND (<= (CHAR-CODE #\0) STR::CODE) (<= STR::CODE (CHAR-CODE #\9))) (AND (<= (CHAR-CODE #\a) STR::CODE) (<= STR::CODE (CHAR-CODE #\f))) (AND (<= (CHAR-CODE #\A) STR::CODE) (<= STR::CODE (CHAR-CODE #\F)))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::HEX-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::HEX-DIGITP STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::HEX-DIGITP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizer for characters 0-9, A-F, and a-f.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGITP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call hex-digitp) is the hexadecimal alternative to @(see digitp).</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::HEX-DIGITP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizer for characters 0-9, A-F, and a-f.") (:LONG . "<p>@(call hex-digitp) is the hexadecimal alternative to @(see digitp).</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|HEX-DIGITP$INLINE|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-HEX-DIGITP-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::HEX-DIGITP)))))) (VALUE-TRIPLE (QUOTE STR::HEX-DIGITP))))) (9 RECORD-EXPANSION (DEFSECTION STR::HEX-DIGIT-LISTP :PARENTS (STR::NUMBERS) :SHORT "Recognizes lists of @(see hex-digitp) characters." (DEFUND STR::HEX-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD (CHARACTER-LISTP X))) (IF (ATOM X) T (AND (STR::HEX-DIGITP (CAR X)) (STR::HEX-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-LISTP))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::HEX-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-LISTP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::HEX-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD (CHARACTER-LISTP X))) (IF (ATOM X) T (AND (STR::HEX-DIGITP (CAR X)) (STR::HEX-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-LISTP))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::HEX-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::HEX-DIGIT-LISTP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizes lists of @(see hex-digitp) characters.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-LISTP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::HEX-DIGIT-LISTP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizes lists of @(see hex-digitp) characters.") (:LONG . "

<h3>Definitions and Theorems</h3>@(def |STR|::|HEX-DIGIT-LISTP|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-HEX-DIGIT-LISTP-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::HEX-DIGIT-LISTP)))))) (VALUE-TRIPLE (QUOTE STR::HEX-DIGIT-LISTP))))) (10 RECORD-EXPANSION (DEFSECTION STR::HEX-DIGIT-VAL :PARENTS (STR::NUMBERS) :SHORT "Coerces a @(see hex-digitp) character into an integer." :LONG "<p>@(call hex-digit-val) is the hexadecimal version of @(see
digit-val).</p>" (DEFINLINED STR::HEX-DIGIT-VAL (X) (DECLARE (XARGS :GUARD (AND (CHARACTERP X) (STR::HEX-DIGITP X)))) (IF (MBE :LOGIC (NOT (STR::HEX-DIGITP X)) :EXEC NIL) 0 (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (COND ((<= (CHAR-CODE #\a) STR::CODE) (- STR::CODE (- (CHAR-CODE #\a) 10))) ((<= (CHAR-CODE #\A) STR::CODE) (- STR::CODE (- (CHAR-CODE #\A) 10))) (T (- STR::CODE (CHAR-CODE #\0))))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-VAL STR::HEX-DIGITP))) (DEFTHM STR::NATP-OF-HEX-DIGIT-VAL (NATP (STR::HEX-DIGIT-VAL X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ICHAREQV EQUAL (STR::HEX-DIGIT-VAL X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))) (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-VAL #\A) 10) (EQUAL (STR::HEX-DIGIT-VAL #\B) 11) (EQUAL (STR::HEX-DIGIT-VAL #\C) 12) (EQUAL (STR::HEX-DIGIT-VAL #\D) 13) (EQUAL (STR::HEX-DIGIT-VAL #\E) 14) (EQUAL (STR::HEX-DIGIT-VAL #\F) 15) (EQUAL (STR::HEX-DIGIT-VAL #\a) 10) (EQUAL (STR::HEX-DIGIT-VAL #\b) 11) (EQUAL (STR::HEX-DIGIT-VAL #\c) 12) (EQUAL (STR::HEX-DIGIT-VAL #\d) 13) (EQUAL (STR::HEX-DIGIT-VAL #\e) 14) (EQUAL (STR::HEX-DIGIT-VAL #\f) 15) (EQUAL (STR::HEX-DIGIT-VAL #\0) 0) (EQUAL (STR::HEX-DIGIT-VAL #\1) 1) (EQUAL (STR::HEX-DIGIT-VAL #\2) 2) (EQUAL (STR::HEX-DIGIT-VAL #\3) 3) (EQUAL (STR::HEX-DIGIT-VAL #\4) 4) (EQUAL (STR::HEX-DIGIT-VAL #\5) 5) (EQUAL (STR::HEX-DIGIT-VAL #\6) 6) (EQUAL (STR::HEX-DIGIT-VAL #\7) 7) (EQUAL (STR::HEX-DIGIT-VAL #\8) 8) (EQUAL (STR::HEX-DIGIT-VAL #\9) 9))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-VAL)) (RECORD-EXPANSION (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::HEX-DIGIT-VAL (X) (DECLARE (XARGS :GUARD (AND (CHARACTERP X) (STR::HEX-DIGITP X)))) (IF (MBE :LOGIC (NOT (STR::HEX-DIGITP X)) :EXEC NIL) 0 (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (COND ((<= (CHAR-CODE #\a) STR::CODE) (- STR::CODE (- (CHAR-CODE #\a) 10))) ((<= (CHAR-CODE #\A) STR::CODE) (- STR::CODE (- (CHAR-CODE #\A) 10))) (T (- STR::CODE (CHAR-CODE #\0))))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-VAL STR::HEX-DIGITP))) (DEFTHM STR::NATP-OF-HEX-DIGIT-VAL (NATP (STR::HEX-DIGIT-VAL X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ICHAREQV EQUAL (STR::HEX-DIGIT-VAL X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))) (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-VAL #\A) 10) (EQUAL (STR::HEX-DIGIT-VAL #\B) 11) (EQUAL (STR::HEX-DIGIT-VAL #\C) 12) (EQUAL (STR::HEX-DIGIT-VAL #\D) 13) (EQUAL (STR::HEX-DIGIT-VAL #\E) 14) (EQUAL (STR::HEX-DIGIT-VAL #\F) 15) (EQUAL (STR::HEX-DIGIT-VAL #\a) 10) (EQUAL (STR::HEX-DIGIT-VAL #\b) 11) (EQUAL (STR::HEX-DIGIT-VAL #\c) 12) (EQUAL (STR::HEX-DIGIT-VAL #\d) 13) (EQUAL (STR::HEX-DIGIT-VAL #\e) 14) (EQUAL (STR::HEX-DIGIT-VAL #\f) 15) (EQUAL (STR::HEX-DIGIT-VAL #\0) 0) (EQUAL (STR::HEX-DIGIT-VAL #\1) 1) (EQUAL (STR::HEX-DIGIT-VAL #\2) 2) (EQUAL (STR::HEX-DIGIT-VAL #\3) 3) (EQUAL (STR::HEX-DIGIT-VAL #\4) 4) (EQUAL (STR::HEX-DIGIT-VAL #\5) 5) (EQUAL (STR::HEX-DIGIT-VAL #\6) 6) (EQUAL (STR::HEX-DIGIT-VAL #\7) 7) (EQUAL (STR::HEX-DIGIT-VAL #\8) 8) (EQUAL (STR::HEX-DIGIT-VAL #\9) 9)))))) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::HEX-DIGIT-VAL (X) (DECLARE (XARGS :GUARD (AND (CHARACTERP X) (STR::HEX-DIGITP X)))) (IF (MBE :LOGIC (NOT (STR::HEX-DIGITP X)) :EXEC NIL) 0 (LET ((STR::CODE (CHAR-CODE (MBE :LOGIC (STR::CHAR-FIX X) :EXEC X)))) (DECLARE (TYPE (UNSIGNED-BYTE 8) STR::CODE)) (COND ((<= (CHAR-CODE #\a) STR::CODE) (- STR::CODE (- (CHAR-CODE #\a) 10))) ((<= (CHAR-CODE #\A) STR::CODE) (- STR::CODE (- (CHAR-CODE #\A) 10))) (T (- STR::CODE (CHAR-CODE #\0))))))) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-VAL STR::HEX-DIGITP))) (DEFTHM STR::NATP-OF-HEX-DIGIT-VAL (NATP (STR::HEX-DIGIT-VAL X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ICHAREQV EQUAL (STR::HEX-DIGIT-VAL X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))) (RECORD-EXPANSION (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-VAL #\A) 10) (EQUAL (STR::HEX-DIGIT-VAL #\B) 11) (EQUAL (STR::HEX-DIGIT-VAL #\C) 12) (EQUAL (STR::HEX-DIGIT-VAL #\D) 13) (EQUAL (STR::HEX-DIGIT-VAL #\E) 14) (EQUAL (STR::HEX-DIGIT-VAL #\F) 15) (EQUAL (STR::HEX-DIGIT-VAL #\a) 10) (EQUAL (STR::HEX-DIGIT-VAL #\b) 11) (EQUAL (STR::HEX-DIGIT-VAL #\c) 12) (EQUAL (STR::HEX-DIGIT-VAL #\d) 13) (EQUAL (STR::HEX-DIGIT-VAL #\e) 14) (EQUAL (STR::HEX-DIGIT-VAL #\f) 15) (EQUAL (STR::HEX-DIGIT-VAL #\0) 0) (EQUAL (STR::HEX-DIGIT-VAL #\1) 1) (EQUAL (STR::HEX-DIGIT-VAL #\2) 2) (EQUAL (STR::HEX-DIGIT-VAL #\3) 3) (EQUAL (STR::HEX-DIGIT-VAL #\4) 4) (EQUAL (STR::HEX-DIGIT-VAL #\5) 5) (EQUAL (STR::HEX-DIGIT-VAL #\6) 6) (EQUAL (STR::HEX-DIGIT-VAL #\7) 7) (EQUAL (STR::HEX-DIGIT-VAL #\8) 8) (EQUAL (STR::HEX-DIGIT-VAL #\9) 9)))) (LOCAL (VALUE-TRIPLE :ELIDED)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::HEX-DIGIT-VAL)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Coerces a @(see hex-digitp) character into an integer.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-VAL))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call hex-digit-val) is the hexadecimal version of @(see
digit-val).</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::HEX-DIGIT-VAL) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Coerces a @(see hex-digitp) character into an integer.") (:LONG . "<p>@(call hex-digit-val) is the hexadecimal version of @(see
digit-val).</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|HEX-DIGIT-VAL$INLINE|)
@(def |STR|::|NATP-OF-HEX-DIGIT-VAL|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-HEX-DIGIT-VAL-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::HEX-DIGIT-VAL)))))) (VALUE-TRIPLE (QUOTE STR::HEX-DIGIT-VAL))))) (11 RECORD-EXPANSION (DEFSECTION STR::PARSE-HEX-FROM-CHARLIST :PARENTS (STR::NUMBERS) :SHORT "Parse a hexadecimal number from the beginning of a character list." :LONG "<p>This is like @(call parse-nat-from-charlist), but deals with
hex digits and returns their hexadecimal value.</p>" (DEFUND STR::PARSE-HEX-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((STR::HEX-DIGITP (CAR X)) (LET ((STR::DIGIT-VAL (STR::HEX-DIGIT-VAL (CAR X)))) (STR::PARSE-HEX-FROM-CHARLIST (CDR X) (THE (INTEGER 0 *) (+ (THE (INTEGER 0 *) STR::DIGIT-VAL) (THE (INTEGER 0 *) (* 16 (THE (INTEGER 0 *) (LNFIX STR::VAL)))))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN))))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-HEX-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-HEX-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-HEX-FROM-CHARLIST)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::PARSE-HEX-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((STR::HEX-DIGITP (CAR X)) (LET ((STR::DIGIT-VAL (STR::HEX-DIGIT-VAL (CAR X)))) (STR::PARSE-HEX-FROM-CHARLIST (CDR X) (THE (INTEGER 0 *) (+ (THE (INTEGER 0 *) STR::DIGIT-VAL) (THE (INTEGER 0 *) (* 16 (THE (INTEGER 0 *) (LNFIX STR::VAL)))))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN))))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-HEX-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-HEX-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::PARSE-HEX-FROM-CHARLIST)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Parse a hexadecimal number from the beginning of a character list.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-HEX-FROM-CHARLIST))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>This is like @(call parse-nat-from-charlist), but deals with
hex digits and returns their hexadecimal value.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::PARSE-HEX-FROM-CHARLIST) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Parse a hexadecimal number from the beginning of a character list.") (:LONG . "<p>This is like @(call parse-nat-from-charlist), but deals with
hex digits and returns their hexadecimal value.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|PARSE-HEX-FROM-CHARLIST|)
@(def |STR|::|NATP-OF-PARSE-HEX-FROM-CHARLIST|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::PARSE-HEX-FROM-CHARLIST)))))) (VALUE-TRIPLE (QUOTE STR::PARSE-HEX-FROM-CHARLIST))))) (12 RECORD-EXPANSION (DEFSECTION STR::HEX-DIGIT-LIST-VALUE :PARENTS (STR::NUMBERS) :SHORT "Coerces a list of hex digits into a natural number." :LONG "<p>@(call hex-digit-list-value) is like @(see digit-list-value) but
for hex numbers.</p>

<p>See also @(see parse-hex-from-charlist) for a more flexible function that
can tolerate non-hex digits after the number.</p>" (DEFINLINED STR::HEX-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::HEX-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-HEX-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-HEX-DIGIT-LIST-VALUE (NATP (STR::HEX-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-HEX-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::HEX-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 18) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 4660))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-LIST-VALUE)) (RECORD-EXPANSION (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::HEX-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::HEX-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-HEX-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-HEX-DIGIT-LIST-VALUE (NATP (STR::HEX-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-HEX-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::HEX-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 18) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 4660)))))) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::HEX-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::HEX-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-HEX-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::HEX-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-HEX-DIGIT-LIST-VALUE (NATP (STR::HEX-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-HEX-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-HEX-FROM-CHARLIST STR::ICHARLISTEQV))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::HEX-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (RECORD-EXPANSION (LOCAL (ASSERT! (AND (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "6" (QUOTE LIST))) 6) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "12" (QUOTE LIST))) 18) (EQUAL (STR::HEX-DIGIT-LIST-VALUE (COERCE "1234" (QUOTE LIST))) 4660)))) (LOCAL (VALUE-TRIPLE :ELIDED)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::HEX-DIGIT-LIST-VALUE)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Coerces a list of hex digits into a natural number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::HEX-DIGIT-LIST-VALUE))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call hex-digit-list-value) is like @(see digit-list-value) but
for hex numbers.</p>

<p>See also @(see parse-hex-from-charlist) for a more flexible function that
can tolerate non-hex digits after the number.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::HEX-DIGIT-LIST-VALUE) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Coerces a list of hex digits into a natural number.") (:LONG . "<p>@(call hex-digit-list-value) is like @(see digit-list-value) but
for hex numbers.</p>

<p>See also @(see parse-hex-from-charlist) for a more flexible function that
can tolerate non-hex digits after the number.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|HEX-DIGIT-LIST-VALUE$INLINE|)
@(def |STR|::|NATP-OF-HEX-DIGIT-LIST-VALUE|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-HEX-DIGIT-LIST-VALUE-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::HEX-DIGIT-LIST-VALUE)))))) (VALUE-TRIPLE (QUOTE STR::HEX-DIGIT-LIST-VALUE))))) (13 RECORD-EXPANSION (DEFSECTION STR::BIT-DIGITP :PARENTS (STR::NUMBERS) :SHORT "Recognizer for characters #\\0 and #\\1." :LONG "<p>@(call bit-digitp) is the binary alternative to @(see digitp).</p>" (DEFINLINED STR::BIT-DIGITP (X) (DECLARE (XARGS :GUARD T)) (OR (EQL X #\0) (EQL X #\1))) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::BIT-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGITP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::BIT-DIGITP (X) (DECLARE (XARGS :GUARD T)) (OR (EQL X #\0) (EQL X #\1))) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGITP))) (DEFCONG STR::ICHAREQV EQUAL (STR::BIT-DIGITP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::BIT-DIGITP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizer for characters #\\0 and #\\1.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGITP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call bit-digitp) is the binary alternative to @(see digitp).</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::BIT-DIGITP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizer for characters #\\0 and #\\1.") (:LONG . "<p>@(call bit-digitp) is the binary alternative to @(see digitp).</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|BIT-DIGITP$INLINE|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-BIT-DIGITP-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::BIT-DIGITP)))))) (VALUE-TRIPLE (QUOTE STR::BIT-DIGITP))))) (14 RECORD-EXPANSION (DEFSECTION STR::BIT-DIGIT-LISTP :PARENTS (STR::NUMBERS) :SHORT "Recognizes lists of @(see bit-digitp) characters." (DEFUND STR::BIT-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD T)) (IF (ATOM X) T (AND (STR::BIT-DIGITP (CAR X)) (STR::BIT-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGIT-LISTP))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::BIT-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGIT-LISTP)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::BIT-DIGIT-LISTP (X) (DECLARE (XARGS :GUARD T)) (IF (ATOM X) T (AND (STR::BIT-DIGITP (CAR X)) (STR::BIT-DIGIT-LISTP (CDR X))))) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGIT-LISTP))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::BIT-DIGIT-LISTP X) 1 :HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHARLISTEQV)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::BIT-DIGIT-LISTP)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizes lists of @(see bit-digitp) characters.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGIT-LISTP))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::BIT-DIGIT-LISTP) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizes lists of @(see bit-digitp) characters.") (:LONG . "

<h3>Definitions and Theorems</h3>@(def |STR|::|BIT-DIGIT-LISTP|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-BIT-DIGIT-LISTP-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::BIT-DIGIT-LISTP)))))) (VALUE-TRIPLE (QUOTE STR::BIT-DIGIT-LISTP))))) (15 RECORD-EXPANSION (DEFSECTION STR::BITSTRING-P :PARENTS (STR::NUMBERS) :SHORT "Recognizes strings with only @(see bit-digitp) characters." (DEFUND STR::BITSTRING-P (X) (DECLARE (XARGS :GUARD T)) (AND (STRINGP X) (STR::BIT-DIGIT-LISTP (EXPLODE X)))) (LOCAL (IN-THEORY (ENABLE STR::BITSTRING-P)))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::BITSTRING-P)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::BITSTRING-P (X) (DECLARE (XARGS :GUARD T)) (AND (STRINGP X) (STR::BIT-DIGIT-LISTP (EXPLODE X)))) (LOCAL (IN-THEORY (ENABLE STR::BITSTRING-P))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::BITSTRING-P)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Recognizes strings with only @(see bit-digitp) characters.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::BITSTRING-P))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::BITSTRING-P) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Recognizes strings with only @(see bit-digitp) characters.") (:LONG . "

<h3>Definitions and Theorems</h3>@(def |STR|::|BITSTRING-P|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::BITSTRING-P)))))) (VALUE-TRIPLE (QUOTE STR::BITSTRING-P))))) (16 RECORD-EXPANSION (DEFSECTION STR::PARSE-BITS-FROM-CHARLIST :PARENTS (STR::NUMBERS) :SHORT "Parse a binary number from the beginning of a character list." :LONG "<p>This is like @(call parse-nat-from-charlist), but deals with binary
digits (#\\0 and #\\1) and returns their binary value.</p>" (DEFUND STR::PARSE-BITS-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((EQL (CAR X) #\0) (STR::PARSE-BITS-FROM-CHARLIST (CDR X) (MBE :LOGIC (* 2 (NFIX STR::VAL)) :EXEC (THE (INTEGER 0 *) (ASH STR::VAL 1))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN)))))) ((EQL (CAR X) #\1) (STR::PARSE-BITS-FROM-CHARLIST (CDR X) (THE (INTEGER 0 *) (+ 1 (MBE :LOGIC (* 2 (NFIX STR::VAL)) :EXEC (THE (INTEGER 0 *) (ASH STR::VAL 1))))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN)))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-BITS-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-BITS-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-BITS-FROM-CHARLIST)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::PARSE-BITS-FROM-CHARLIST (X STR::VAL LEN) (DECLARE (TYPE (INTEGER 0 *) STR::VAL LEN) (XARGS :GUARD (AND (CHARACTER-LISTP X) (NATP STR::VAL) (NATP LEN)))) (COND ((ATOM X) (MV (LNFIX STR::VAL) (LNFIX LEN) NIL)) ((EQL (CAR X) #\0) (STR::PARSE-BITS-FROM-CHARLIST (CDR X) (MBE :LOGIC (* 2 (NFIX STR::VAL)) :EXEC (THE (INTEGER 0 *) (ASH STR::VAL 1))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN)))))) ((EQL (CAR X) #\1) (STR::PARSE-BITS-FROM-CHARLIST (CDR X) (THE (INTEGER 0 *) (+ 1 (MBE :LOGIC (* 2 (NFIX STR::VAL)) :EXEC (THE (INTEGER 0 *) (ASH STR::VAL 1))))) (THE (INTEGER 0 *) (+ 1 (THE (INTEGER 0 *) (LNFIX LEN)))))) (T (MV (LNFIX STR::VAL) (LNFIX LEN) X)))) (LOCAL (IN-THEORY (ENABLE STR::PARSE-BITS-FROM-CHARLIST))) (DEFTHM STR::NATP-OF-PARSE-BITS-FROM-CHARLIST (IMPLIES (NATP STR::VAL) (NATP (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST X STR::VAL LEN)))) :RULE-CLASSES :TYPE-PRESCRIPTION))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::PARSE-BITS-FROM-CHARLIST)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Parse a binary number from the beginning of a character list.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::PARSE-BITS-FROM-CHARLIST))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>This is like @(call parse-nat-from-charlist), but deals with binary
digits (#\\0 and #\\1) and returns their binary value.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::PARSE-BITS-FROM-CHARLIST) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Parse a binary number from the beginning of a character list.") (:LONG . "<p>This is like @(call parse-nat-from-charlist), but deals with binary
digits (#\\0 and #\\1) and returns their binary value.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|PARSE-BITS-FROM-CHARLIST|)
@(def |STR|::|NATP-OF-PARSE-BITS-FROM-CHARLIST|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::PARSE-BITS-FROM-CHARLIST)))))) (VALUE-TRIPLE (QUOTE STR::PARSE-BITS-FROM-CHARLIST))))) (17 RECORD-EXPANSION (DEFSECTION STR::BIT-DIGIT-LIST-VALUE :PARENTS (STR::NUMBERS) :SHORT "Coerces a list of bit digits into a natural number." :LONG "<p>@(call bit-digit-list-value) is like @(see digit-list-value) but
for bit numbers.</p>

<p>See also @(see parse-bits-from-charlist) for a more flexible function that
can tolerate non-bit digits after the number.</p>" (DEFINLINED STR::BIT-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::BIT-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-BITS-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-BIT-DIGIT-LIST-VALUE (NATP (STR::BIT-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-BITS-FROM-CHARLIST STR::ICHARLISTEQV STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::BIT-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "1" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "01" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0101011101" (QUOTE LIST))) 349))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGIT-LIST-VALUE)) (RECORD-EXPANSION (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::BIT-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::BIT-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-BITS-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-BIT-DIGIT-LIST-VALUE (NATP (STR::BIT-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-BITS-FROM-CHARLIST STR::ICHARLISTEQV STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::BIT-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (LOCAL (ASSERT! (AND (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "1" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "01" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0101011101" (QUOTE LIST))) 349)))))) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::BIT-DIGIT-LIST-VALUE (X) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (STR::BIT-DIGIT-LISTP X)))) (B* (((MV STR::VAL STR::?LEN STR::?REST) (STR::PARSE-BITS-FROM-CHARLIST X 0 0))) STR::VAL)) (LOCAL (IN-THEORY (ENABLE STR::BIT-DIGIT-LIST-VALUE))) (DEFTHM STR::NATP-OF-BIT-DIGIT-LIST-VALUE (NATP (STR::BIT-DIGIT-LIST-VALUE X)) :RULE-CLASSES :TYPE-PRESCRIPTION) (LOCAL (DEFTHMD STR::L0 (IMPLIES (STR::ICHARLISTEQV X STR::X-EQUIV) (EQUAL (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST X STR::VAL LEN)) (MV-NTH 0 (STR::PARSE-BITS-FROM-CHARLIST STR::X-EQUIV STR::VAL LEN)))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::PARSE-BITS-FROM-CHARLIST STR::ICHARLISTEQV STR::ICHAREQV STR::DOWNCASE-CHAR STR::CHAR-FIX))))) (DEFCONG STR::ICHARLISTEQV EQUAL (STR::BIT-DIGIT-LIST-VALUE X) 1 :HINTS (("Goal" :USE ((:INSTANCE STR::L0 (STR::VAL 0) (LEN 0)))))) (RECORD-EXPANSION (LOCAL (ASSERT! (AND (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0" (QUOTE LIST))) 0) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "1" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "01" (QUOTE LIST))) 1) (EQUAL (STR::BIT-DIGIT-LIST-VALUE (COERCE "0101011101" (QUOTE LIST))) 349)))) (LOCAL (VALUE-TRIPLE :ELIDED)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::BIT-DIGIT-LIST-VALUE)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Coerces a list of bit digits into a natural number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::BIT-DIGIT-LIST-VALUE))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call bit-digit-list-value) is like @(see digit-list-value) but
for bit numbers.</p>

<p>See also @(see parse-bits-from-charlist) for a more flexible function that
can tolerate non-bit digits after the number.</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::BIT-DIGIT-LIST-VALUE) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Coerces a list of bit digits into a natural number.") (:LONG . "<p>@(call bit-digit-list-value) is like @(see digit-list-value) but
for bit numbers.</p>

<p>See also @(see parse-bits-from-charlist) for a more flexible function that
can tolerate non-bit digits after the number.</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|BIT-DIGIT-LIST-VALUE$INLINE|)
@(def |STR|::|NATP-OF-BIT-DIGIT-LIST-VALUE|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-BIT-DIGIT-LIST-VALUE-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::BIT-DIGIT-LIST-VALUE)))))) (VALUE-TRIPLE (QUOTE STR::BIT-DIGIT-LIST-VALUE))))) (18 RECORD-EXPANSION (DEFSECTION STR::STRVAL :PARENTS (STR::NUMBERS) :SHORT "Interpret a string as a decimal number." :LONG "<p>@(call strval) tries to interpret a string as a base-10 natural
number.  For example, @('(strval \"35\")') is 35.  If the string has any
non-decimal digit characters or is empty, we return @('nil').</p>" (DEFUND STR::STRVAL (X) (DECLARE (TYPE STRING X)) (B* (((THE (INTEGER 0 *) STR::XL) (MBE :LOGIC (LEN (EXPLODE X)) :EXEC (LENGTH X))) ((MV (THE (INTEGER 0 *) STR::VAL) (THE (INTEGER 0 *) LEN)) (STR::PARSE-NAT-FROM-STRING X 0 0 0 STR::XL))) (AND (< 0 LEN) (INT= LEN STR::XL) STR::VAL))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL))) (DEFTHM STR::TYPE-OF-STRVAL (OR (NATP (STR::STRVAL X)) (NOT (STR::STRVAL X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL X) 1)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::STRVAL (X) (DECLARE (TYPE STRING X)) (B* (((THE (INTEGER 0 *) STR::XL) (MBE :LOGIC (LEN (EXPLODE X)) :EXEC (LENGTH X))) ((MV (THE (INTEGER 0 *) STR::VAL) (THE (INTEGER 0 *) LEN)) (STR::PARSE-NAT-FROM-STRING X 0 0 0 STR::XL))) (AND (< 0 LEN) (INT= LEN STR::XL) STR::VAL))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL))) (DEFTHM STR::TYPE-OF-STRVAL (OR (NATP (STR::STRVAL X)) (NOT (STR::STRVAL X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL X) 1))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::STRVAL)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Interpret a string as a decimal number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call strval) tries to interpret a string as a base-10 natural
number.  For example, @('(strval \"35\")') is 35.  If the string has any
non-decimal digit characters or is empty, we return @('nil').</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::STRVAL) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Interpret a string as a decimal number.") (:LONG . "<p>@(call strval) tries to interpret a string as a base-10 natural
number.  For example, @('(strval \"35\")') is 35.  If the string has any
non-decimal digit characters or is empty, we return @('nil').</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|STRVAL|)
@(def |STR|::|TYPE-OF-STRVAL|)
@(def |STR|::|ISTREQV-IMPLIES-EQUAL-STRVAL-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::STRVAL)))))) (VALUE-TRIPLE (QUOTE STR::STRVAL))))) (19 RECORD-EXPANSION (DEFSECTION STR::STRVAL8 :PARENTS (STR::NUMBERS) :SHORT "Interpret a string as an octal number." :LONG "<p>@(call strval8) is like @(see strval) but for octal instead of
decimal numbers.  For example, @('(strval8 \"10\")') is 8.  If the string is
empty or has any non-octal digit characters, we return @('nil').</p>" (DEFUND STR::STRVAL8 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::OCTAL-DIGIT-LISTP STR::CHARS) (STR::OCTAL-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL8))) (DEFTHM STR::TYPE-OF-STRVAL8 (OR (NATP (STR::STRVAL8 X)) (NOT (STR::STRVAL8 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL8 X) 1)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL8)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::STRVAL8 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::OCTAL-DIGIT-LISTP STR::CHARS) (STR::OCTAL-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL8))) (DEFTHM STR::TYPE-OF-STRVAL8 (OR (NATP (STR::STRVAL8 X)) (NOT (STR::STRVAL8 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL8 X) 1))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::STRVAL8)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Interpret a string as an octal number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL8))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call strval8) is like @(see strval) but for octal instead of
decimal numbers.  For example, @('(strval8 \"10\")') is 8.  If the string is
empty or has any non-octal digit characters, we return @('nil').</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::STRVAL8) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Interpret a string as an octal number.") (:LONG . "<p>@(call strval8) is like @(see strval) but for octal instead of
decimal numbers.  For example, @('(strval8 \"10\")') is 8.  If the string is
empty or has any non-octal digit characters, we return @('nil').</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|STRVAL8|)
@(def |STR|::|TYPE-OF-STRVAL8|)
@(def |STR|::|ISTREQV-IMPLIES-EQUAL-STRVAL8-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::STRVAL8)))))) (VALUE-TRIPLE (QUOTE STR::STRVAL8))))) (20 RECORD-EXPANSION (DEFSECTION STR::STRVAL16 :PARENTS (STR::NUMBERS) :SHORT "Interpret a string as a hexadecimal number." :LONG "<p>@(call strval16) is like @(see strval) but for hexadecimal instead
of decimal numbers.  For example, @('(strval16 \"10\")') is 16.  If the string
is empty or has any non-hex digit characters, we return @('nil').</p>" (DEFUND STR::STRVAL16 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::HEX-DIGIT-LISTP STR::CHARS) (STR::HEX-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL16))) (DEFTHM STR::TYPE-OF-STRVAL16 (OR (NATP (STR::STRVAL16 X)) (NOT (STR::STRVAL16 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL16 X) 1)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL16)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::STRVAL16 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::HEX-DIGIT-LISTP STR::CHARS) (STR::HEX-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL16))) (DEFTHM STR::TYPE-OF-STRVAL16 (OR (NATP (STR::STRVAL16 X)) (NOT (STR::STRVAL16 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL16 X) 1))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::STRVAL16)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Interpret a string as a hexadecimal number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL16))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call strval16) is like @(see strval) but for hexadecimal instead
of decimal numbers.  For example, @('(strval16 \"10\")') is 16.  If the string
is empty or has any non-hex digit characters, we return @('nil').</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::STRVAL16) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Interpret a string as a hexadecimal number.") (:LONG . "<p>@(call strval16) is like @(see strval) but for hexadecimal instead
of decimal numbers.  For example, @('(strval16 \"10\")') is 16.  If the string
is empty or has any non-hex digit characters, we return @('nil').</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|STRVAL16|)
@(def |STR|::|TYPE-OF-STRVAL16|)
@(def |STR|::|ISTREQV-IMPLIES-EQUAL-STRVAL16-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::STRVAL16)))))) (VALUE-TRIPLE (QUOTE STR::STRVAL16))))) (21 RECORD-EXPANSION (DEFSECTION STR::STRVAL2 :PARENTS (STR::NUMBERS) :SHORT "Interpret a string as a binary number." :LONG "<p>@(call strval2) is like @(see strval) but for binary instead of
decimal numbers.  For example, @('(strval16 \"10\")') is 2.  If the string is
empty or has any non-binary digit characters, we return @('nil').</p>" (DEFUND STR::STRVAL2 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::BIT-DIGIT-LISTP STR::CHARS) (STR::BIT-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL2))) (DEFTHM STR::TYPE-OF-STRVAL2 (OR (NATP (STR::STRVAL2 X)) (NOT (STR::STRVAL2 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL2 X) 1)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL2)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::STRVAL2 (X) (DECLARE (TYPE STRING X)) (LET ((STR::CHARS (EXPLODE X))) (AND (CONSP STR::CHARS) (STR::BIT-DIGIT-LISTP STR::CHARS) (STR::BIT-DIGIT-LIST-VALUE STR::CHARS)))) (LOCAL (IN-THEORY (ENABLE STR::STRVAL2))) (DEFTHM STR::TYPE-OF-STRVAL2 (OR (NATP (STR::STRVAL2 X)) (NOT (STR::STRVAL2 X))) :RULE-CLASSES :TYPE-PRESCRIPTION) (DEFCONG STR::ISTREQV EQUAL (STR::STRVAL2 X) 1))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::STRVAL2)) (XDOC::PARENTS (QUOTE (STR::NUMBERS))) (XDOC::SHORT (QUOTE "Interpret a string as a binary number.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::STRVAL2))) NIL)) (XDOC::INFO (REVERSE (NEW-FORMULA-INFO XDOC::TRIPS XDOC::WRLD NIL))) (XDOC::AUTODOC (XDOC::FORMULA-INFO-TO-DEFS (NOT XDOC::EXTENSION) XDOC::INFO)) (XDOC::LONG (CONCATENATE (QUOTE STRING) (QUOTE "<p>@(call strval2) is like @(see strval) but for binary instead of
decimal numbers.  For example, @('(strval16 \"10\")') is 2.  If the string is
empty or has any non-binary digit characters, we return @('nil').</p>") (COERCE (LIST #\Newline #\Newline) (QUOTE STRING)) XDOC::AUTODOC))) (IF XDOC::EXTENSION (CONS (QUOTE XDOC-EXTEND) (CONS XDOC::EXTENSION (CONS XDOC::LONG (QUOTE NIL)))) (CONS (QUOTE DEFXDOC) (CONS XDOC::NAME (CONS (QUOTE :PARENTS) (CONS XDOC::PARENTS (CONS (QUOTE :SHORT) (CONS XDOC::SHORT (CONS (QUOTE :LONG) (CONS XDOC::LONG (QUOTE NIL)))))))))))) (WITH-OUTPUT :OFF (EVENT SUMMARY) (PROGN (TABLE XDOC (QUOTE DOC) (CONS (QUOTE ((:NAME . STR::STRVAL2) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::NUMBERS) (:SHORT . "Interpret a string as a binary number.") (:LONG . "<p>@(call strval2) is like @(see strval) but for binary instead of
decimal numbers.  For example, @('(strval16 \"10\")') is 2.  If the string is
empty or has any non-binary digit characters, we return @('nil').</p>

<h3>Definitions and Theorems</h3>@(def |STR|::|STRVAL2|)
@(def |STR|::|TYPE-OF-STRVAL2|)
@(def |STR|::|ISTREQV-IMPLIES-EQUAL-STRVAL2-1|)") (:FROM . "[books]/str/strval.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::STRVAL2)))))) (VALUE-TRIPLE (QUOTE STR::STRVAL2))))) (22 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL "") NIL))) (LOCAL (VALUE-TRIPLE :ELIDED))) (23 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL2 "") NIL))) (LOCAL (VALUE-TRIPLE :ELIDED))) (24 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL8 "") NIL))) (LOCAL (VALUE-TRIPLE :ELIDED))) (25 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL16 "") NIL))) (LOCAL (VALUE-TRIPLE :ELIDED))) (26 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL "0") 0))) (LOCAL (VALUE-TRIPLE :ELIDED))) (27 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL2 "0") 0))) (LOCAL (VALUE-TRIPLE :ELIDED))) (28 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL8 "0") 0))) (LOCAL (VALUE-TRIPLE :ELIDED))) (29 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL16 "0") 0))) (LOCAL (VALUE-TRIPLE :ELIDED))) (30 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL "1234") 1234))) (LOCAL (VALUE-TRIPLE :ELIDED))) (31 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL2 "0101") 5))) (LOCAL (VALUE-TRIPLE :ELIDED))) (32 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL8 "1234") 668))) (LOCAL (VALUE-TRIPLE :ELIDED))) (33 RECORD-EXPANSION (LOCAL (ASSERT! (EQUAL (STR::STRVAL16 "1234") 4660))) (LOCAL (VALUE-TRIPLE :ELIDED))))
(("/usr/share/acl2-6.3/books/cutil/portcullis.lisp" "cutil/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1188104018) ("/usr/share/acl2-6.3/books/std/osets/portcullis.lisp" "std/osets/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1689687557) ("/usr/share/acl2-6.3/books/xdoc/portcullis.lisp" "xdoc/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1473208573) ("/usr/share/acl2-6.3/books/str/portcullis.lisp" "str/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2077071243))
(("/usr/share/acl2-6.3/books/str/strval.lisp" "strval" "strval" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1981642498) (LOCAL ("/usr/share/acl2-6.3/books/misc/assert.lisp" "misc/assert" "assert" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1184956729)) (LOCAL ("/usr/share/acl2-6.3/books/misc/eval.lisp" "eval" "eval" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1069973718)) ("/usr/share/acl2-6.3/books/str/strnatless.lisp" "strnatless" "strnatless" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1797808730) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/floor-mod/floor-mod.lisp" "arithmetic-3/floor-mod/floor-mod" "floor-mod" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 14631641)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/top.lisp" "../bind-free/top" "top" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 248299501)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/banner.lisp" "banner" "banner" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 915259697)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/arithmetic-theory.lisp" "arithmetic-theory" "arithmetic-theory" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 732116275)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/remove-weak-inequalities.lisp" "remove-weak-inequalities" "remove-weak-inequalities" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 105657945)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/collect.lisp" "collect" "collect" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 864029516)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/integerp-meta.lisp" "integerp-meta" "integerp-meta" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 750113408)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/integerp.lisp" "integerp" "integerp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1374753694)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/numerator-and-denominator.lisp" "numerator-and-denominator" "numerator-and-denominator" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 122664565)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/simplify.lisp" "simplify" "simplify" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2013733040)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/simplify-helper.lisp" "simplify-helper" "simplify-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1061645425)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/normalize.lisp" "normalize" "normalize" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1619080936)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/basic.lisp" "basic" "basic" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 972646001)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/basic-helper.lisp" "basic-helper" "basic-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 384804126)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/common.lisp" "common" "common" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1113724693)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/mini-theories.lisp" "mini-theories" "mini-theories" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 483566967)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/mini-theories-helper.lisp" "mini-theories-helper" "mini-theories-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 457663279)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/top.lisp" "../pass1/top" "top" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 513558315)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/numerator-and-denominator.lisp" "numerator-and-denominator" "numerator-and-denominator" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 134470975)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/num-and-denom-helper.lisp" "num-and-denom-helper" "num-and-denom-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 784695287)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/non-linear.lisp" "non-linear" "non-linear" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2126151702)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/mini-theories.lisp" "mini-theories" "mini-theories" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1504975778)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/expt.lisp" "expt" "expt" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 653127144)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/expt-helper.lisp" "expt-helper" "expt-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1661395704)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/prefer-times.lisp" "prefer-times" "prefer-times" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1273493319)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/inequalities.lisp" "inequalities" "inequalities" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 508744284)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/basic-arithmetic.lisp" "basic-arithmetic" "basic-arithmetic" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1246647817)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/pass1/basic-arithmetic-helper.lisp" "basic-arithmetic-helper" "basic-arithmetic-helper" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 376534638)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/building-blocks.lisp" "building-blocks" "building-blocks" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1061889192)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic-3/bind-free/default-hint.lisp" "default-hint" "default-hint" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1153949377)) ("/usr/share/acl2-6.3/books/tools/mv-nth.lisp" "tools/mv-nth" "mv-nth" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 82993140) ("/usr/share/acl2-6.3/books/str/digitp.lisp" "digitp" "digitp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 479290421) ("/usr/share/acl2-6.3/books/str/ieqv.lisp" "ieqv" "ieqv" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 620245362) ("/usr/share/acl2-6.3/books/std/lists/list-defuns.lisp" "std/lists/list-defuns" "list-defuns" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 321177760) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/sublistp.lisp" "sublistp" "sublistp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1635583873)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/top-with-meta.lisp" "arithmetic/top-with-meta" "top-with-meta" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 349005499)) (LOCAL ("/usr/share/acl2-6.3/books/meta/meta.lisp" "meta/meta" "meta" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1434715577)) (LOCAL ("/usr/share/acl2-6.3/books/meta/meta-times-equal.lisp" "meta-times-equal" "meta-times-equal" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2078846479)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/equalities.lisp" "arithmetic/equalities" "equalities" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 597034595)) (LOCAL ("/usr/share/acl2-6.3/books/meta/meta-plus-lessp.lisp" "meta-plus-lessp" "meta-plus-lessp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 932651372)) (LOCAL ("/usr/share/acl2-6.3/books/meta/meta-plus-equal.lisp" "meta-plus-equal" "meta-plus-equal" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1948431900)) (LOCAL ("/usr/share/acl2-6.3/books/meta/term-lemmas.lisp" "term-lemmas" "term-lemmas" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 304413851)) (LOCAL ("/usr/share/acl2-6.3/books/meta/term-defuns.lisp" "term-defuns" "term-defuns" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1038247295)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/top.lisp" "top" "top" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 956305966)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/same-lengthp.lisp" "same-lengthp" "same-lengthp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2063823673)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/sets.lisp" "sets" "sets" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 878261262)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/mfc-utils.lisp" "mfc-utils" "mfc-utils" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1043482843)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/rcons.lisp" "rcons" "rcons" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 105042482)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/repeat.lisp" "repeat" "repeat" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 293545519)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/prefixp.lisp" "prefixp" "prefixp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 689235789)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/final-cdr.lisp" "final-cdr" "final-cdr" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 96013958)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/duplicity.lisp" "duplicity" "duplicity" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 914433854)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/flatten.lisp" "flatten" "flatten" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1125138266)) ("/usr/share/acl2-6.3/books/std/lists/equiv.lisp" "equiv" "equiv" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1948483556) ("/usr/share/acl2-6.3/books/tools/rulesets.lisp" "tools/rulesets" "rulesets" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 639683473) ("/usr/share/acl2-6.3/books/str/char-case.lisp" "char-case" "char-case" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2059343298) ("/usr/share/acl2-6.3/books/tools/bstar.lisp" "tools/bstar" "bstar" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1482974359) ("/usr/share/acl2-6.3/books/tools/pack.lisp" "pack" "pack" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1797170439) ("/usr/share/acl2-6.3/books/str/eqv.lisp" "eqv" "eqv" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1920438599) (LOCAL ("/usr/share/acl2-6.3/books/str/arithmetic.lisp" "arithmetic" "arithmetic" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 216355320)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/repeat.lisp" "std/lists/repeat" "repeat" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 293545519)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/nthcdr.lisp" "nthcdr" "nthcdr" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1415704060)) ("/usr/share/acl2-6.3/books/std/lists/rev.lisp" "rev" "rev" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 327117871) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/nthcdr.lisp" "std/lists/nthcdr" "nthcdr" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1415704060)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/len.lisp" "std/lists/len" "len" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 963137114)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/take.lisp" "std/lists/take" "take" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1496833916)) ("/usr/share/acl2-6.3/books/std/lists/rev.lisp" "std/lists/rev" "rev" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 327117871) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/append.lisp" "append" "append" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 567759210)) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/revappend.lisp" "revappend" "revappend" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1368863429)) ("/usr/share/acl2-6.3/books/std/lists/equiv.lisp" "std/lists/equiv" "equiv" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1948483556) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/take.lisp" "take" "take" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1496833916)) ("/usr/share/acl2-6.3/books/str/coerce.lisp" "coerce" "coerce" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1053051260) ("/usr/share/acl2-6.3/books/str/make-character-list.lisp" "make-character-list" "make-character-list" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1622566814) (LOCAL ("/usr/share/acl2-6.3/books/std/lists/append.lisp" "std/lists/append" "append" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 567759210)) ("/usr/share/acl2-6.3/books/std/lists/list-fix.lisp" "list-fix" "list-fix" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1844974260) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/top.lisp" "arithmetic/top" "top" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 956305966)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/rationals.lisp" "rationals" "rationals" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1403689963)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/mod-gcd.lisp" "mod-gcd" "mod-gcd" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1629957550)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/natp-posp.lisp" "natp-posp" "natp-posp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2140150970)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/inequalities.lisp" "inequalities" "inequalities" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1221989523)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/nat-listp.lisp" "nat-listp" "nat-listp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1767896370)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/rational-listp.lisp" "rational-listp" "rational-listp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1775556314)) (LOCAL ("/usr/share/acl2-6.3/books/arithmetic/equalities.lisp" "equalities" "equalities" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 597034595)) (LOCAL ("/usr/share/acl2-6.3/books/cowles/acl2-crg.lisp" "cowles/acl2-crg" "acl2-crg" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 761519866)) (LOCAL ("/usr/share/acl2-6.3/books/cowles/acl2-agp.lisp" "acl2-agp" "acl2-agp" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2007324914)) (LOCAL ("/usr/share/acl2-6.3/books/cowles/acl2-asg.lisp" "acl2-asg" "acl2-asg" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1939433116)) ("/usr/share/acl2-6.3/books/str/char-fix.lisp" "char-fix" "char-fix" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 70055851) ("/usr/share/acl2-6.3/books/misc/definline.lisp" "misc/definline" "definline" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1571016648) ("/usr/share/acl2-6.3/books/xdoc/top.lisp" "xdoc/top" "top" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1214825095) ("/usr/share/acl2-6.3/books/xdoc/book-thms.lisp" "book-thms" "book-thms" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1105796063) ("/usr/share/acl2-6.3/books/xdoc/base.lisp" "base" "base" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 454271148) ("/usr/share/acl2-6.3/books/xdoc/portcullis.lisp" "portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1473208573) ("/usr/share/acl2-6.3/books/cutil/portcullis.lisp" "cutil/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1188104018) ("/usr/share/acl2-6.3/books/std/osets/portcullis.lisp" "std/osets/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1689687557) ("/usr/share/acl2-6.3/books/xdoc/portcullis.lisp" "xdoc/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 1473208573) ("/usr/share/acl2-6.3/books/str/portcullis.lisp" "str/portcullis" "portcullis" ((:SKIPPED-PROOFSP) (:AXIOMSP) (:TTAGS)) . 2077071243))
2105863970