Function:
(defun vl-lint-scan-for-ignore (x mwtype) (declare (xargs :guard (stringp mwtype))) (let ((__function__ 'vl-lint-scan-for-ignore)) (declare (ignorable __function__)) (b* (((when (atom x)) nil) ((when (symbolp (car x))) (if (eq (car x) :vl-module) nil (or (case (car x) (:nonatom (and (vl-expr-p x) (eq (vl-expr-kind x) :nonatom) (vl-lint-atts-say-ignore (vl-nonatom->atts x) mwtype))) (:vl-assign (and (vl-assign-p x) (vl-lint-atts-say-ignore (vl-assign->atts x) mwtype))) (:vl-modinst (and (vl-modinst-p x) (vl-lint-atts-say-ignore (vl-modinst->atts x) mwtype))) (:vl-gateinst (and (vl-gateinst-p x) (vl-lint-atts-say-ignore (vl-gateinst->atts x) mwtype))) (:vl-portdecl (and (vl-portdecl-p x) (vl-lint-atts-say-ignore (vl-portdecl->atts x) mwtype))) (:vl-vardecl (and (vl-vardecl-p x) (vl-lint-atts-say-ignore (vl-vardecl->atts x) mwtype))) (:vl-paramdecl (and (vl-paramdecl-p x) (vl-lint-atts-say-ignore (vl-paramdecl->atts x) mwtype))) (:vl-fundecl (and (vl-fundecl-p x) (vl-lint-atts-say-ignore (vl-fundecl->atts x) mwtype))) (:vl-taskdecl (and (vl-taskdecl-p x) (vl-lint-atts-say-ignore (vl-taskdecl->atts x) mwtype))) (:vl-always (and (vl-always-p x) (vl-lint-atts-say-ignore (vl-always->atts x) mwtype))) (:vl-initial (and (vl-initial-p x) (vl-lint-atts-say-ignore (vl-initial->atts x) mwtype))) (:vl-plainarg (and (vl-plainarg-p x) (vl-lint-atts-say-ignore (vl-plainarg->atts x) mwtype))) (:vl-namedarg (and (vl-namedarg-p x) (vl-lint-atts-say-ignore (vl-namedarg->atts x) mwtype))) ((:vl-nullstmt :vl-assignstmt :vl-deassignstmt :vl-enablestmt :vl-disablestmt :vl-eventtriggerstmt :vl-casestmt :vl-ifstmt :vl-foreverstmt :vl-waitstmt :vl-whilestmt :vl-forstmt :vl-blockstmt :vl-repeatstmt :vl-timingstmt) (and (vl-stmt-p x) (vl-lint-atts-say-ignore (vl-stmt->atts x) mwtype))) (otherwise nil)) (vl-lint-scan-for-ignore (cdr x) mwtype))))) (or (vl-lint-scan-for-ignore (car x) mwtype) (vl-lint-scan-for-ignore (cdr x) mwtype)))))
Theorem:
(defthm booleanp-of-vl-lint-scan-for-ignore (b* ((ignorep (vl-lint-scan-for-ignore x mwtype))) (booleanp ignorep)) :rule-classes :type-prescription)