(vl-modinst-simp x) → new-x
Function:
(defun vl-modinst-simp (x) (declare (xargs :guard (vl-modinst-p x))) (let ((__function__ 'vl-modinst-simp)) (declare (ignorable __function__)) (b* ((x (vl-modinst-fix x)) ((vl-modinst x) x)) (vl-arguments-case x.portargs :vl-arguments-named x :vl-arguments-plain (b* ((plainargs (vl-plainarglist-simp x.portargs.args)) (args (make-vl-arguments-plain :args plainargs))) (change-vl-modinst x :portargs args))))))
Theorem:
(defthm vl-modinst-p-of-vl-modinst-simp (b* ((new-x (vl-modinst-simp x))) (vl-modinst-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-modinst-simp-of-vl-modinst-fix-x (equal (vl-modinst-simp (vl-modinst-fix x)) (vl-modinst-simp x)))
Theorem:
(defthm vl-modinst-simp-vl-modinst-equiv-congruence-on-x (implies (vl-modinst-equiv x x-equiv) (equal (vl-modinst-simp x) (vl-modinst-simp x-equiv))) :rule-classes :congruence)