other
(in-package "ACL2")
remove-entry-by-keyfunction
(defun remove-entry-by-key (key alist) (if (endp alist) nil (if (eq key (caar alist)) (cdr alist) (cons (car alist) (remove-entry-by-key key (cdr alist))))))
generate-add-include-book-dir-callsfunction
(defun generate-add-include-book-dir-calls (dir-alist) (if (or (endp dir-alist) t) nil (cons `(add-include-book-dir ,(CAAR DIR-ALIST) ,(CDAR DIR-ALIST)) (generate-add-include-book-dir-calls (cdr dir-alist)))))
compute-inline-book-fnfunction
(defun compute-inline-book-fn (user-book-name dir respect-localp state) (declare (xargs :mode :program :stobjs state)) (let* ((ctx 'inline-book) (wrld0 (w state)) (saved-acl2-defaults-table (table-alist 'acl2-defaults-table wrld0)) (saved-acl2-defaults-table-minus-book-dir-alist (remove-entry-by-key :include-book-dir-alist saved-acl2-defaults-table)) (saved-book-dir-alist (cdr (assoc-eq :include-book-dir-alist saved-acl2-defaults-table)))) (er-let* ((dir-value (cond (dir (include-book-dir-with-chk soft ctx dir)) (t (value (cbd)))))) (mv-let (full-book-string full-book-name directory-name familiar-name) (parse-book-name dir-value user-book-name ".lisp" ctx state) (declare (ignore full-book-name directory-name familiar-name)) (er-progn (chk-input-object-file full-book-string ctx state) (er-let* ((ev-lst (read-object-file full-book-string ctx state))) (value `(,@(IF RESPECT-LOCALP '(ENCAPSULATE NIL) '(PROGN)) ,@(IF (EQ :LOGIC (CDR (ASSOC-EQ :DEFUN-MODE SAVED-ACL2-DEFAULTS-TABLE))) NIL '((LOGIC))) ,@(CDR EV-LST) ,@(IF RESPECT-LOCALP 'NIL (CONS `(TABLE ACL2-DEFAULTS-TABLE NIL ',SAVED-ACL2-DEFAULTS-TABLE-MINUS-BOOK-DIR-ALIST :CLEAR) (GENERATE-ADD-INCLUDE-BOOK-DIR-CALLS SAVED-BOOK-DIR-ALIST))) (value-triple ',FULL-BOOK-STRING)))))))))
compute-inline-book-valuemacro
(defmacro compute-inline-book-value (user-book-name &key dir) `(er-let* ((ev (compute-inline-book-fn ',USER-BOOK-NAME ',DIR nil state))) (value `(value-triple ',EV))))
inline-bookmacro
(defmacro inline-book (user-book-name &key dir load-compiled-file uncertified-okp defaxioms-okp skip-proofs-okp ttags doc) (declare (ignore load-compiled-file uncertified-okp defaxioms-okp skip-proofs-okp ttags doc)) `(make-event (compute-inline-book-fn ',USER-BOOK-NAME ',DIR nil state)))
encapsulate-bookmacro
(defmacro encapsulate-book (user-book-name &key dir load-compiled-file uncertified-okp defaxioms-okp skip-proofs-okp ttags doc) (declare (ignore load-compiled-file uncertified-okp defaxioms-okp skip-proofs-okp ttags doc)) `(make-event (compute-inline-book-fn ',USER-BOOK-NAME ',DIR t state)))