(functions-called expr) → l
Function:
(defun functions-called (expr) (declare (xargs :guard t)) (let ((__function__ 'functions-called)) (declare (ignorable __function__)) (if (atom expr) nil (let ((rec-fns (append (functions-called (car expr)) (functions-called (cdr expr))))) (if (and (expressionp expr) (equal (expression-kind expr) ':call)) (cons (identifier->name (expression-call->function expr)) rec-fns) rec-fns)))))
Theorem:
(defthm string-listp-of-functions-called (b* ((l (functions-called expr))) (string-listp l)) :rule-classes :rewrite)