(vl-report-totals report) → (mv num-spurious num-unused num-unset num-linputs)
Function:
(defun vl-report-totals (report) (declare (xargs :guard (vl-useset-report-p report))) (let ((__function__ 'vl-report-totals)) (declare (ignorable __function__)) (if (atom report) (mv 0 0 0 0) (b* ((spurious1 (len (vl-useset-report-entry->spurious (car report)))) (unused1 (len (vl-useset-report-entry->unused (car report)))) (unset1 (len (vl-useset-report-entry->unset (car report)))) (linputs1 (len (vl-useset-report-entry->lvalue-inputs (car report)))) ((mv spurious2 unused2 unset2 linputs2) (vl-report-totals (cdr report)))) (mv (+ spurious1 spurious2) (+ unused1 unused2) (+ unset1 unset2) (+ linputs1 linputs2))))))
Theorem:
(defthm natp-of-vl-report-totals.num-spurious (b* (((mv ?num-spurious ?num-unused ?num-unset ?num-linputs) (vl-report-totals report))) (natp num-spurious)) :rule-classes :type-prescription)
Theorem:
(defthm natp-of-vl-report-totals.num-unused (b* (((mv ?num-spurious ?num-unused ?num-unset ?num-linputs) (vl-report-totals report))) (natp num-unused)) :rule-classes :type-prescription)
Theorem:
(defthm natp-of-vl-report-totals.num-unset (b* (((mv ?num-spurious ?num-unused ?num-unset ?num-linputs) (vl-report-totals report))) (natp num-unset)) :rule-classes :type-prescription)
Theorem:
(defthm natp-of-vl-report-totals.num-linputs (b* (((mv ?num-spurious ?num-unused ?num-unset ?num-linputs) (vl-report-totals report))) (natp num-linputs)) :rule-classes :type-prescription)