Filtering...

pseudo-event-landmarkp

books/system/pseudo-event-landmarkp

Included Books

other
(in-package "ACL2")
include-book
(include-book "pseudo-event-formp")
include-book
(include-book "std/typed-lists/string-or-symbol-listp" :dir :system)
other
(defsection pseudo-event-landmarkp
  :parents (system-utilities-non-built-in)
  :short "Recognize event landmarks in the ACL2 @(see world)."
  :long "<p>Discussions of event landmarks may be found
      in the comment in @('make-event-tuple') in the ACL2 sources
      and in the comment, labeled `Event Tuples',
      above @('make-event-tuple').</p>"
  (defconst *event-tuple-from-primordial-world-globals*
    (make-event-tuple -1 0 nil nil 0 nil nil nil))
  (defun pseudo-event-landmarkp
    (val)
    (declare (xargs :guard t))
    (or (equal val *event-tuple-from-primordial-world-globals*)
      (and (consp val)
        (let ((val (remove-local val)))
          (and (consp val)
            (or (natp (car val))
              (and (consp (car val))
                (natp (car (car val)))
                (natp (cdr (car val)))))
            (consp (cdr val))
            (if (symbolp (cadr val))
              (pseudo-event-formp (cdr val))
              (and (consp (cadr val))
                (consp (car (cadr val)))
                (symbolp (car (car (cadr val))))
                (booleanp (cdr (car (cadr val))))
                (consp (cdr (cadr val)))
                (or (symbolp (cadr (cadr val)))
                  (if (eq (car (car (cadr val))) 'include-book)
                    (book-name-p (cadr (cadr val)))
                    (stringp (cadr (cadr val))))
                  (equal 0 (cadr (cadr val)))
                  (string-or-symbol-listp (cadr (cadr val))))
                (member-eq (cddr (cadr val))
                  '(nil :program :ideal :common-lisp-compliant))
                (pseudo-event-formp (cddr val))))))))))