Repeatedly propagate assignments in a module.
(vl-module-propagate x limits) → new-x
Function:
(defun vl-module-propagate (x limits) (declare (xargs :guard (and (vl-module-p x) (propagate-limits-p limits)))) (let ((__function__ 'vl-module-propagate)) (declare (ignorable __function__)) (b* ((x (vl-module-fix x)) ((when (vl-module->hands-offp x)) x)) (vl-propagation-fixpoint x 1000 limits))))
Theorem:
(defthm vl-module-p-of-vl-module-propagate (b* ((new-x (vl-module-propagate x limits))) (vl-module-p new-x)) :rule-classes :rewrite)