Check whether we have definitions for all of the descriptions used throughout the design.
(vl-design-check-complete x) → new-x
This is a basic sanity check for modules, interfaces, etc., to make sure that all identifiers used within these design elements are defined. All of the work is done by immdeps, which creates a vl-reportcard with warnings for any undeclared identifiers.
Function:
(defun vl-design-check-complete (x) (declare (xargs :guard (vl-design-p x))) (let ((__function__ 'vl-design-check-complete)) (declare (ignorable __function__)) (b* (((vl-immdepgraph graph) (vl-design-immdeps x))) (vl-apply-reportcard x graph.reportcard))))
Theorem:
(defthm vl-design-p-of-vl-design-check-complete (b* ((new-x (vl-design-check-complete x))) (vl-design-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-check-complete-of-vl-design-fix-x (equal (vl-design-check-complete (vl-design-fix x)) (vl-design-check-complete x)))
Theorem:
(defthm vl-design-check-complete-vl-design-equiv-congruence-on-x (implies (vl-design-equiv x x-equiv) (equal (vl-design-check-complete x) (vl-design-check-complete x-equiv))) :rule-classes :congruence)