Remove from a list of function symbols all the functions called by a term.
(atc-remove-called-fns fns term) → new-fns
This is used by atc-process-function; see that function's documentation for details.
Function:
(defun atc-remove-called-fns (fns term) (declare (xargs :guard (and (symbol-listp fns) (pseudo-termp term)))) (let ((__function__ 'atc-remove-called-fns)) (declare (ignorable __function__)) (cond ((endp fns) nil) (t (if (ffnnamep (car fns) term) (atc-remove-called-fns (cdr fns) term) (cons (car fns) (atc-remove-called-fns (cdr fns) term)))))))
Theorem:
(defthm symbol-listp-of-atc-remove-called-fns (implies (symbol-listp fns) (b* ((new-fns (atc-remove-called-fns fns term))) (symbol-listp new-fns))) :rule-classes :rewrite)