Filtering...

elide-event

books/tools/elide-event
other
(in-package "ACL2")
elide-defunfunction
(defun elide-defun
  (ev)
  (declare (xargs :guard (true-listp ev)))
  (cond ((and (cddddr ev) (plausible-dclsp (butlast (cdddr ev) 1))) `(,(CAR EV) ,(CADR EV)
        ,(CADDR EV)
        ,@(STRIP-DCLS
   '(COMMENT :GUARD-HINTS :GUARD-DEBUG :HINTS :MEASURE-DEBUG :OTF-FLG)
   (BUTLAST (CDDDR EV) 1))
        ,(CAR (LAST EV))))
    (t ev)))
elide-defthmfunction
(defun elide-defthm
  (ev)
  (declare (xargs :guard (true-listp ev)))
  (let* ((name (cadr ev)) (body (caddr ev))
      (rest (cdddr ev))
      (tail (and rest (member-eq :rule-classes rest))))
    (cond (tail (list (car ev) name body :rule-classes (cadr tail)))
      (rest (list (car ev) name body))
      (t ev))))
elide-eventmutual-recursion
(mutual-recursion (defun elide-event
    (ev)
    (declare (xargs :guard (true-listp ev)))
    (case (car ev)
      ((defun defund defun-nx defund-nx) (elide-defun ev))
      ((progn mutual-recursion) (cons (car ev) (elide-event-lst (cdr ev))))
      (encapsulate (if (cadr ev)
          ev
          (list* 'encapsulate nil (elide-event-lst (cddr ev)))))
      (defthm (elide-defthm ev))
      (t ev)))
  (defun elide-event-lst
    (lst)
    (declare (xargs :guard (true-listp lst)))
    (cond ((endp lst) nil)
      (t (cons (if (true-listp (car lst))
            (elide-event (car lst))
            (car lst))
          (elide-event-lst (cdr lst)))))))