(vl-gatearglist-delayredux delaymod x loc delta) → (mv new-x delta)
Function:
(defun vl-gatearglist-delayredux (delaymod x loc delta) (declare (xargs :guard (and (vl-module-p delaymod) (and (vl-plainarglist-p x) (vl-gateargs-ok-for-delayredux-p x)) (vl-location-p loc) (vl-delta-p delta)))) (let ((__function__ 'vl-gatearglist-delayredux)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv x delta)) ((mv car delta) (vl-gatearg-delayredux delaymod (car x) loc delta)) ((mv cdr delta) (vl-gatearglist-delayredux delaymod (cdr x) loc delta))) (mv (cons car cdr) delta))))
Theorem:
(defthm vl-plainarglist-p-of-vl-gatearglist-delayredux.new-x (implies (and (force (vl-module-p delaymod)) (force (if (vl-plainarglist-p x) (vl-gateargs-ok-for-delayredux-p x) 'nil)) (force (vl-location-p loc)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gatearglist-delayredux delaymod x loc delta))) (vl-plainarglist-p new-x))) :rule-classes :rewrite)
Theorem:
(defthm vl-delta-p-of-vl-gatearglist-delayredux.delta (implies (and (force (vl-module-p delaymod)) (force (if (vl-plainarglist-p x) (vl-gateargs-ok-for-delayredux-p x) 'nil)) (force (vl-location-p loc)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gatearglist-delayredux delaymod x loc delta))) (vl-delta-p delta))) :rule-classes :rewrite)