Top-level function for E conversion.
(vl-design-to-e good bad) → (mv good bad)
Function:
(defun vl-design-to-e (good bad) (declare (xargs :guard (and (vl-design-p good) (vl-design-p bad)))) (let ((__function__ 'vl-design-to-e)) (declare (ignorable __function__)) (b* ((good (vl-design-to-e-check-ports good)) (bad (vl-design-fix bad)) ((mv good bad) (vl-design-propagate-errors good bad)) ((mv okp good) (vl-design-deporder-modules good)) ((unless okp) (raise "Somehow failed to dependency order sort the modules.") (mv good bad)) (good (vl-design-to-e-main good)) ((mv good bad) (vl-design-propagate-errors good bad))) (mv good bad))))
Theorem:
(defthm vl-design-p-of-vl-design-to-e.good (b* (((mv ?good ?bad) (vl-design-to-e good bad))) (vl-design-p good)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-p-of-vl-design-to-e.bad (b* (((mv ?good ?bad) (vl-design-to-e good bad))) (vl-design-p bad)) :rule-classes :rewrite)