/usr/share/acl2-6.3/books/str/ieqv.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 | (IN-PACKAGE "ACL2")
"ACL2 Version 6.3"
:BEGIN-PORTCULLIS-CMDS
(INCLUDE-BOOK "cutil/portcullis" :DIR :SYSTEM)
:END-PORTCULLIS-CMDS
:EXPANSION-ALIST
((5 RECORD-EXPANSION (DEFSECTION STR::ICHAREQV :PARENTS (STR::EQUIVALENCES STR::CASES) :SHORT "Case-insensitive character equivalence test." :LONG "<p>@(call ichareqv) determines if @('x') and @('y') are equivalent
when interpreted as characters without regard to case. For instance,
upper-case C is equivalent to lower-case c under this relation.</p>
<p>ACL2 has a built-in version of this function, @(see char-equal), but it is
irritating to use because it has @(see standard-char-p) guards. In contrast,
@('ichareqv') works on arbitrary characters, with some loss of efficiency.</p>" (DEFINLINED STR::ICHAREQV (X Y) (DECLARE (TYPE CHARACTER X) (TYPE CHARACTER Y)) (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y))) (LOCAL (IN-THEORY (ENABLE STR::ICHAREQV))) (DEFEQUIV STR::ICHAREQV) (DEFREFINEMENT STR::CHAREQV STR::ICHAREQV) (ENCAPSULATE NIL (LOCAL (DEFTHMD STR::L1 (IMPLIES (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y)) (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y))) :HINTS (("Goal" :IN-THEORY (DISABLE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR) :USE ((:INSTANCE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR (X X)) (:INSTANCE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR (X Y))))))) (LOCAL (DEFTHMD STR::L2 (IMPLIES (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y)) (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y))) :HINTS (("Goal" :IN-THEORY (DISABLE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR) :USE ((:INSTANCE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR (X X)) (:INSTANCE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR (X Y))))))) (DEFTHM STR::EQUAL-OF-UPCASE-CHAR-AND-UPCASE-CHAR (EQUAL (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y)) (STR::ICHAREQV X Y)) :HINTS (("Goal" :USE ((:INSTANCE STR::L1) (:INSTANCE STR::L2)))))) (DEFCONG STR::ICHAREQV EQUAL (STR::DOWNCASE-CHAR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::UPCASE-CHAR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::UPCASE-CHAR-STR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::DOWNCASE-CHAR-STR X) 1)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::ICHAREQV)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFINLINED STR::ICHAREQV (X Y) (DECLARE (TYPE CHARACTER X) (TYPE CHARACTER Y)) (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y))) (LOCAL (IN-THEORY (ENABLE STR::ICHAREQV))) (DEFEQUIV STR::ICHAREQV) (DEFREFINEMENT STR::CHAREQV STR::ICHAREQV) (ENCAPSULATE NIL (LOCAL (DEFTHMD STR::L1 (IMPLIES (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y)) (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y))) :HINTS (("Goal" :IN-THEORY (DISABLE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR) :USE ((:INSTANCE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR (X X)) (:INSTANCE STR::DOWNCASE-CHAR-OF-UPCASE-CHAR (X Y))))))) (LOCAL (DEFTHMD STR::L2 (IMPLIES (EQUAL (STR::DOWNCASE-CHAR X) (STR::DOWNCASE-CHAR Y)) (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y))) :HINTS (("Goal" :IN-THEORY (DISABLE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR) :USE ((:INSTANCE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR (X X)) (:INSTANCE STR::UPCASE-CHAR-OF-DOWNCASE-CHAR (X Y))))))) (DEFTHM STR::EQUAL-OF-UPCASE-CHAR-AND-UPCASE-CHAR (EQUAL (EQUAL (STR::UPCASE-CHAR X) (STR::UPCASE-CHAR Y)) (STR::ICHAREQV X Y)) :HINTS (("Goal" :USE ((:INSTANCE STR::L1) (:INSTANCE STR::L2)))))) (DEFCONG STR::ICHAREQV EQUAL (STR::DOWNCASE-CHAR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::UPCASE-CHAR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::UPCASE-CHAR-STR X) 1) (DEFCONG STR::ICHAREQV EQUAL (STR::DOWNCASE-CHAR-STR X) 1))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::ICHAREQV)) (XDOC::PARENTS (QUOTE (STR::EQUIVALENCES STR::CASES))) (XDOC::SHORT (QUOTE "Case-insensitive character equivalence test.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::ICHAREQV))) 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 ichareqv) determines if @('x') and @('y') are equivalent
when interpreted as characters without regard to case. For instance,
upper-case C is equivalent to lower-case c under this relation.</p>
<p>ACL2 has a built-in version of this function, @(see char-equal), but it is
irritating to use because it has @(see standard-char-p) guards. In contrast,
@('ichareqv') works on arbitrary characters, with some loss of efficiency.</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::ICHAREQV) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::EQUIVALENCES STR::CASES) (:SHORT . "Case-insensitive character equivalence test.") (:LONG . "<p>@(call ichareqv) determines if @('x') and @('y') are equivalent
when interpreted as characters without regard to case. For instance,
upper-case C is equivalent to lower-case c under this relation.</p>
<p>ACL2 has a built-in version of this function, @(see char-equal), but it is
irritating to use because it has @(see standard-char-p) guards. In contrast,
@('ichareqv') works on arbitrary characters, with some loss of efficiency.</p>
<h3>Definitions and Theorems</h3>@(def |STR|::|ICHAREQV$INLINE|)
@(def |STR|::|ICHAREQV-IS-AN-EQUIVALENCE|)
@(def |STR|::|CHAREQV-REFINES-ICHAREQV|)
@(def |STR|::|EQUAL-OF-UPCASE-CHAR-AND-UPCASE-CHAR|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-DOWNCASE-CHAR-1|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-UPCASE-CHAR-1|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-UPCASE-CHAR-STR-1|)
@(def |STR|::|ICHAREQV-IMPLIES-EQUAL-DOWNCASE-CHAR-STR-1|)") (:FROM . "[books]/str/ieqv.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::ICHAREQV)))))) (VALUE-TRIPLE (QUOTE STR::ICHAREQV))))) (6 RECORD-EXPANSION (DEFSECTION STR::ICHARLISTEQV :PARENTS (STR::EQUIVALENCES STR::CASES) :SHORT "Case-insensitive character-list equivalence test." :LONG "<p>@(call icharlisteqv) determines if @('x') and @('y') are
case-insensitively equivalent character lists. That is, @('x') and @('y') must
have the same length and their elements must be @(see ichareqv) to one
another.</p>
<p>See also @(see charlisteqv) for a case-sensitive alternative.</p>" (DEFUND STR::ICHARLISTEQV (X Y) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (CHARACTER-LISTP Y)))) (IF (CONSP X) (AND (CONSP Y) (STR::ICHAREQV (CAR X) (CAR Y)) (STR::ICHARLISTEQV (CDR X) (CDR Y))) (ATOM Y))) (LOCAL (IN-THEORY (ENABLE STR::ICHARLISTEQV))) (DEFEQUIV STR::ICHARLISTEQV) (DEFREFINEMENT STR::CHARLISTEQV STR::ICHARLISTEQV :HINTS (("Goal" :IN-THEORY (ENABLE STR::CHAREQV)))) (DEFCONG STR::ICHARLISTEQV STR::ICHAREQV (CAR X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (CDR X) 1) (DEFCONG STR::ICHAREQV STR::ICHARLISTEQV (CONS A X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (CONS A X) 2) (DEFCONG STR::ICHARLISTEQV EQUAL (LEN X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (LIST-FIX X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHAREQV (NTH N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (NTHCDR N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (TAKE N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (APPEND X Y) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (APPEND X Y) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REV X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REVAPPEND X Y) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REVAPPEND X Y) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (MAKE-CHARACTER-LIST X) 1) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-CONSP-LEFT (IMPLIES (NOT (CONSP X)) (EQUAL (STR::ICHARLISTEQV X Y) (ATOM Y)))) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-CONSP-RIGHT (IMPLIES (NOT (CONSP Y)) (EQUAL (STR::ICHARLISTEQV X Y) (ATOM X)))) (DEFTHM STR::ICHARLISTEQV-OF-CONS-RIGHT (EQUAL (STR::ICHARLISTEQV X (CONS A Y)) (AND (CONSP X) (STR::ICHAREQV (CAR X) (DOUBLE-REWRITE A)) (STR::ICHARLISTEQV (CDR X) (DOUBLE-REWRITE Y))))) (DEFTHM STR::ICHARLISTEQV-OF-CONS-LEFT (EQUAL (STR::ICHARLISTEQV (CONS A X) Y) (AND (CONSP Y) (STR::ICHAREQV (DOUBLE-REWRITE A) (CAR Y)) (STR::ICHARLISTEQV (DOUBLE-REWRITE X) (CDR Y))))) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-SAME-LENS (IMPLIES (NOT (EQUAL (LEN X) (LEN Y))) (NOT (STR::ICHARLISTEQV X Y))))) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::ICHARLISTEQV)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::ICHARLISTEQV (X Y) (DECLARE (XARGS :GUARD (AND (CHARACTER-LISTP X) (CHARACTER-LISTP Y)))) (IF (CONSP X) (AND (CONSP Y) (STR::ICHAREQV (CAR X) (CAR Y)) (STR::ICHARLISTEQV (CDR X) (CDR Y))) (ATOM Y))) (LOCAL (IN-THEORY (ENABLE STR::ICHARLISTEQV))) (DEFEQUIV STR::ICHARLISTEQV) (DEFREFINEMENT STR::CHARLISTEQV STR::ICHARLISTEQV :HINTS (("Goal" :IN-THEORY (ENABLE STR::CHAREQV)))) (DEFCONG STR::ICHARLISTEQV STR::ICHAREQV (CAR X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (CDR X) 1) (DEFCONG STR::ICHAREQV STR::ICHARLISTEQV (CONS A X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (CONS A X) 2) (DEFCONG STR::ICHARLISTEQV EQUAL (LEN X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (LIST-FIX X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHAREQV (NTH N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (NTHCDR N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (TAKE N X) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (APPEND X Y) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (APPEND X Y) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REV X) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REVAPPEND X Y) 2) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (REVAPPEND X Y) 1) (DEFCONG STR::ICHARLISTEQV STR::ICHARLISTEQV (MAKE-CHARACTER-LIST X) 1) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-CONSP-LEFT (IMPLIES (NOT (CONSP X)) (EQUAL (STR::ICHARLISTEQV X Y) (ATOM Y)))) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-CONSP-RIGHT (IMPLIES (NOT (CONSP Y)) (EQUAL (STR::ICHARLISTEQV X Y) (ATOM X)))) (DEFTHM STR::ICHARLISTEQV-OF-CONS-RIGHT (EQUAL (STR::ICHARLISTEQV X (CONS A Y)) (AND (CONSP X) (STR::ICHAREQV (CAR X) (DOUBLE-REWRITE A)) (STR::ICHARLISTEQV (CDR X) (DOUBLE-REWRITE Y))))) (DEFTHM STR::ICHARLISTEQV-OF-CONS-LEFT (EQUAL (STR::ICHARLISTEQV (CONS A X) Y) (AND (CONSP Y) (STR::ICHAREQV (DOUBLE-REWRITE A) (CAR Y)) (STR::ICHARLISTEQV (DOUBLE-REWRITE X) (CDR Y))))) (DEFTHM STR::ICHARLISTEQV-WHEN-NOT-SAME-LENS (IMPLIES (NOT (EQUAL (LEN X) (LEN Y))) (NOT (STR::ICHARLISTEQV X Y)))))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::ICHARLISTEQV)) (XDOC::PARENTS (QUOTE (STR::EQUIVALENCES STR::CASES))) (XDOC::SHORT (QUOTE "Case-insensitive character-list equivalence test.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::ICHARLISTEQV))) 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 icharlisteqv) determines if @('x') and @('y') are
case-insensitively equivalent character lists. That is, @('x') and @('y') must
have the same length and their elements must be @(see ichareqv) to one
another.</p>
<p>See also @(see charlisteqv) for a case-sensitive alternative.</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::ICHARLISTEQV) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::EQUIVALENCES STR::CASES) (:SHORT . "Case-insensitive character-list equivalence test.") (:LONG . "<p>@(call icharlisteqv) determines if @('x') and @('y') are
case-insensitively equivalent character lists. That is, @('x') and @('y') must
have the same length and their elements must be @(see ichareqv) to one
another.</p>
<p>See also @(see charlisteqv) for a case-sensitive alternative.</p>
<h3>Definitions and Theorems</h3>@(def |STR|::|ICHARLISTEQV|)
@(def |STR|::|ICHARLISTEQV-IS-AN-EQUIVALENCE|)
@(def |STR|::|CHARLISTEQV-REFINES-ICHARLISTEQV|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHAREQV-CAR-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-CDR-1|)
@(def |STR|::|ICHAREQV-IMPLIES-ICHARLISTEQV-CONS-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-CONS-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-EQUAL-LEN-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-LIST-FIX-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHAREQV-NTH-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-NTHCDR-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-TAKE-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-APPEND-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-APPEND-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-REV-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-REVAPPEND-2|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-REVAPPEND-1|)
@(def |STR|::|ICHARLISTEQV-IMPLIES-ICHARLISTEQV-MAKE-CHARACTER-LIST-1|)
@(def |STR|::|ICHARLISTEQV-WHEN-NOT-CONSP-LEFT|)
@(def |STR|::|ICHARLISTEQV-WHEN-NOT-CONSP-RIGHT|)
@(def |STR|::|ICHARLISTEQV-OF-CONS-RIGHT|)
@(def |STR|::|ICHARLISTEQV-OF-CONS-LEFT|)
@(def |STR|::|ICHARLISTEQV-WHEN-NOT-SAME-LENS|)") (:FROM . "[books]/str/ieqv.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::ICHARLISTEQV)))))) (VALUE-TRIPLE (QUOTE STR::ICHARLISTEQV))))) (7 RECORD-EXPANSION (DEFSECTION STR::ISTREQV :PARENTS (STR::EQUIVALENCES STR::CASES) :SHORT "Case-insensitive string equivalence test." :LONG "<p>@(call istreqv) determines if @('x') and @('y') are
case-insensitively equivalent strings. That is, @('x') and @('y') must have
the same length and their elements must be @(see ichareqv) to one another.</p>
<p>Logically this is identical to</p>
@({
(icharlisteqv (explode x) (explode y))
})
<p>But we use a more efficient implementation which avoids coercing the
strings into lists.</p>
<p>NOTE: for reasoning, we leave this function enabled and prefer to work with
@(see icharlisteqv) of the coerces as our normal form.</p>" (DEFUND STR::ISTREQV-AUX (X Y N L) (DECLARE (TYPE STRING X) (TYPE STRING Y) (TYPE (INTEGER 0 *) N) (TYPE (INTEGER 0 *) L) (XARGS :GUARD (AND (NATP N) (NATP L) (EQUAL (LENGTH X) L) (EQUAL (LENGTH Y) L) (<= N L)) :MEASURE (NFIX (- (NFIX L) (NFIX N))) :GUARD-HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV))))) (MBE :LOGIC (IF (ZP (- (NFIX L) (NFIX N))) T (AND (STR::ICHAREQV (CHAR X N) (CHAR Y N)) (STR::ISTREQV-AUX X Y (+ (NFIX N) 1) L))) :EXEC (IF (EQL N L) T (AND (STR::ICHAREQV (THE CHARACTER (CHAR X N)) (THE CHARACTER (CHAR Y N))) (STR::ISTREQV-AUX X Y (THE (INTEGER 0 *) (+ 1 N)) L))))) (DEFINLINE STR::ISTREQV (X Y) (DECLARE (TYPE STRING X) (TYPE STRING Y) (XARGS :VERIFY-GUARDS NIL)) (MBE :LOGIC (STR::ICHARLISTEQV (EXPLODE X) (EXPLODE Y)) :EXEC (B* (((THE (INTEGER 0 *) STR::XL) (LENGTH X)) ((THE (INTEGER 0 *) STR::YL) (LENGTH Y))) (AND (EQL STR::XL STR::YL) (STR::ISTREQV-AUX X Y 0 STR::XL))))) (LOCAL (DEFTHM STR::LEMMA (IMPLIES (AND (< N (LEN X)) (NOT (STR::ICHAREQV (NTH N X) (NTH N Y)))) (NOT (STR::ICHARLISTEQV (NTHCDR N X) (NTHCDR N Y)))))) (LOCAL (DEFTHM STR::LEMMA2 (IMPLIES (AND (< N (LEN X)) (EQUAL (LEN X) (LEN Y)) (STR::ICHAREQV (NTH N X) (NTH N Y))) (EQUAL (STR::ICHARLISTEQV (NTHCDR N X) (NTHCDR N Y)) (STR::ICHARLISTEQV (CDR (NTHCDR N X)) (CDR (NTHCDR N Y))))))) (DEFTHM STR::ISTREQV-AUX-REMOVAL (IMPLIES (AND (STRINGP X) (STRINGP Y) (NATP N) (<= N L) (= L (LENGTH X)) (= L (LENGTH Y))) (EQUAL (STR::ISTREQV-AUX X Y N L) (STR::ICHARLISTEQV (NTHCDR N (EXPLODE X)) (NTHCDR N (EXPLODE Y))))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::ISTREQV-AUX) :INDUCT (STR::ISTREQV-AUX X Y N L)))) (VERIFY-GUARDS STR::ISTREQV$INLINE) (DEFEQUIV STR::ISTREQV) (DEFREFINEMENT STR::STREQV STR::ISTREQV) (DEFCONG STR::ISTREQV STR::ICHAREQV (CHAR X N) 1) (DEFCONG STR::ISTREQV STR::ICHARLISTEQV (EXPLODE X) 1) (DEFCONG STR::ISTREQV STR::ISTREQV (STRING-APPEND X Y) 1) (DEFCONG STR::ISTREQV STR::ISTREQV (STRING-APPEND X Y) 2)) (WITH-OUTPUT :STACK :PUSH :OFF :ALL :ON ERROR (PROGN (TABLE INTRO-TABLE :MARK (QUOTE STR::ISTREQV)) (WITH-OUTPUT :STACK :POP (ENCAPSULATE NIL (VALUE-TRIPLE :INVISIBLE) (DEFUND STR::ISTREQV-AUX (X Y N L) (DECLARE (TYPE STRING X) (TYPE STRING Y) (TYPE (INTEGER 0 *) N) (TYPE (INTEGER 0 *) L) (XARGS :GUARD (AND (NATP N) (NATP L) (EQUAL (LENGTH X) L) (EQUAL (LENGTH Y) L) (<= N L)) :MEASURE (NFIX (- (NFIX L) (NFIX N))) :GUARD-HINTS (("Goal" :IN-THEORY (ENABLE STR::ICHAREQV))))) (MBE :LOGIC (IF (ZP (- (NFIX L) (NFIX N))) T (AND (STR::ICHAREQV (CHAR X N) (CHAR Y N)) (STR::ISTREQV-AUX X Y (+ (NFIX N) 1) L))) :EXEC (IF (EQL N L) T (AND (STR::ICHAREQV (THE CHARACTER (CHAR X N)) (THE CHARACTER (CHAR Y N))) (STR::ISTREQV-AUX X Y (THE (INTEGER 0 *) (+ 1 N)) L))))) (DEFINLINE STR::ISTREQV (X Y) (DECLARE (TYPE STRING X) (TYPE STRING Y) (XARGS :VERIFY-GUARDS NIL)) (MBE :LOGIC (STR::ICHARLISTEQV (EXPLODE X) (EXPLODE Y)) :EXEC (B* (((THE (INTEGER 0 *) STR::XL) (LENGTH X)) ((THE (INTEGER 0 *) STR::YL) (LENGTH Y))) (AND (EQL STR::XL STR::YL) (STR::ISTREQV-AUX X Y 0 STR::XL))))) (LOCAL (DEFTHM STR::LEMMA (IMPLIES (AND (< N (LEN X)) (NOT (STR::ICHAREQV (NTH N X) (NTH N Y)))) (NOT (STR::ICHARLISTEQV (NTHCDR N X) (NTHCDR N Y)))))) (LOCAL (DEFTHM STR::LEMMA2 (IMPLIES (AND (< N (LEN X)) (EQUAL (LEN X) (LEN Y)) (STR::ICHAREQV (NTH N X) (NTH N Y))) (EQUAL (STR::ICHARLISTEQV (NTHCDR N X) (NTHCDR N Y)) (STR::ICHARLISTEQV (CDR (NTHCDR N X)) (CDR (NTHCDR N Y))))))) (DEFTHM STR::ISTREQV-AUX-REMOVAL (IMPLIES (AND (STRINGP X) (STRINGP Y) (NATP N) (<= N L) (= L (LENGTH X)) (= L (LENGTH Y))) (EQUAL (STR::ISTREQV-AUX X Y N L) (STR::ICHARLISTEQV (NTHCDR N (EXPLODE X)) (NTHCDR N (EXPLODE Y))))) :HINTS (("Goal" :IN-THEORY (ENABLE STR::ISTREQV-AUX) :INDUCT (STR::ISTREQV-AUX X Y N L)))) (VERIFY-GUARDS STR::ISTREQV$INLINE) (DEFEQUIV STR::ISTREQV) (DEFREFINEMENT STR::STREQV STR::ISTREQV) (DEFCONG STR::ISTREQV STR::ICHAREQV (CHAR X N) 1) (DEFCONG STR::ISTREQV STR::ICHARLISTEQV (EXPLODE X) 1) (DEFCONG STR::ISTREQV STR::ISTREQV (STRING-APPEND X Y) 1) (DEFCONG STR::ISTREQV STR::ISTREQV (STRING-APPEND X Y) 2))) (RECORD-EXPANSION (MAKE-EVENT (LET* ((XDOC::NAME (QUOTE STR::ISTREQV)) (XDOC::PARENTS (QUOTE (STR::EQUIVALENCES STR::CASES))) (XDOC::SHORT (QUOTE "Case-insensitive string equivalence test.")) (XDOC::EXTENSION (QUOTE NIL)) (XDOC::WRLD (W STATE)) (XDOC::TRIPS (REVERSED-WORLD-SINCE-EVENT XDOC::WRLD (QUOTE (TABLE INTRO-TABLE :MARK (QUOTE STR::ISTREQV))) 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 istreqv) determines if @('x') and @('y') are
case-insensitively equivalent strings. That is, @('x') and @('y') must have
the same length and their elements must be @(see ichareqv) to one another.</p>
<p>Logically this is identical to</p>
@({
(icharlisteqv (explode x) (explode y))
})
<p>But we use a more efficient implementation which avoids coercing the
strings into lists.</p>
<p>NOTE: for reasoning, we leave this function enabled and prefer to work with
@(see icharlisteqv) of the coerces as our normal form.</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::ISTREQV) (:BASE-PKG . STR::ACL2-PKG-WITNESS) (:PARENTS STR::EQUIVALENCES STR::CASES) (:SHORT . "Case-insensitive string equivalence test.") (:LONG . "<p>@(call istreqv) determines if @('x') and @('y') are
case-insensitively equivalent strings. That is, @('x') and @('y') must have
the same length and their elements must be @(see ichareqv) to one another.</p>
<p>Logically this is identical to</p>
@({
(icharlisteqv (explode x) (explode y))
})
<p>But we use a more efficient implementation which avoids coercing the
strings into lists.</p>
<p>NOTE: for reasoning, we leave this function enabled and prefer to work with
@(see icharlisteqv) of the coerces as our normal form.</p>
<h3>Definitions and Theorems</h3>@(def |STR|::|ISTREQV-AUX|)
@(def |STR|::|ISTREQV$INLINE|)
@(def |STR|::|ISTREQV-AUX-REMOVAL|)
@(def |STR|::|ISTREQV-IS-AN-EQUIVALENCE|)
@(def |STR|::|STREQV-REFINES-ISTREQV|)
@(def |STR|::|ISTREQV-IMPLIES-ICHAREQV-CHAR-1|)
@(def |STR|::|ISTREQV-IMPLIES-ICHARLISTEQV-EXPLODE-1|)
@(def |STR|::|ISTREQV-IMPLIES-ISTREQV-STRING-APPEND-1|)
@(def |STR|::|ISTREQV-IMPLIES-ISTREQV-STRING-APPEND-2|)") (:FROM . "[books]/str/ieqv.lisp"))) (XDOC::GET-XDOC-TABLE WORLD))) (VALUE-TRIPLE (QUOTE (DEFXDOC STR::ISTREQV)))))) (VALUE-TRIPLE (QUOTE STR::ISTREQV))))))
(("/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/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))
230655799
|