(vl-ports-resolve-interfaces x ifport-alist) → new-x
Function:
(defun vl-ports-resolve-interfaces (x ifport-alist) (declare (xargs :guard (and (vl-portlist-p x) (vl-interfaceport-alist-p ifport-alist)))) (let ((__function__ 'vl-ports-resolve-interfaces)) (declare (ignorable __function__)) (b* (((when (atom x)) nil) (x1 (vl-port-fix (car x))) (rest (vl-ports-resolve-interfaces (cdr x) ifport-alist)) ((unless (eq (tag x1) :vl-regularport)) (cons x1 rest)) ((vl-regularport x1)) ((unless (and x1.expr (vl-idexpr-p x1.expr))) (cons x1 rest)) (name (vl-idexpr->name x1.expr)) (look (hons-get name (vl-interfaceport-alist-fix ifport-alist))) ((unless look) (cons x1 rest))) (cons (cdr look) rest))))
Theorem:
(defthm vl-portlist-p-of-vl-ports-resolve-interfaces (b* ((new-x (vl-ports-resolve-interfaces x ifport-alist))) (vl-portlist-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-ports-resolve-interfaces-of-vl-portlist-fix-x (equal (vl-ports-resolve-interfaces (vl-portlist-fix x) ifport-alist) (vl-ports-resolve-interfaces x ifport-alist)))
Theorem:
(defthm vl-ports-resolve-interfaces-vl-portlist-equiv-congruence-on-x (implies (vl-portlist-equiv x x-equiv) (equal (vl-ports-resolve-interfaces x ifport-alist) (vl-ports-resolve-interfaces x-equiv ifport-alist))) :rule-classes :congruence)
Theorem:
(defthm vl-ports-resolve-interfaces-of-vl-interfaceport-alist-fix-ifport-alist (equal (vl-ports-resolve-interfaces x (vl-interfaceport-alist-fix ifport-alist)) (vl-ports-resolve-interfaces x ifport-alist)))
Theorem:
(defthm vl-ports-resolve-interfaces-vl-interfaceport-alist-equiv-congruence-on-ifport-alist (implies (vl-interfaceport-alist-equiv ifport-alist ifport-alist-equiv) (equal (vl-ports-resolve-interfaces x ifport-alist) (vl-ports-resolve-interfaces x ifport-alist-equiv))) :rule-classes :congruence)