(vl-gateinstlist-delayredux x delta &key vecp state-onlyp) → (mv new-x delta)
Function:
(defun vl-gateinstlist-delayredux-fn (x delta vecp state-onlyp) (declare (xargs :guard (and (vl-gateinstlist-p x) (vl-delta-p delta)))) (let ((__function__ 'vl-gateinstlist-delayredux)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nil delta)) ((mv car delta) (vl-gateinst-delayredux (car x) delta :vecp vecp :state-onlyp state-onlyp)) ((mv cdr delta) (vl-gateinstlist-delayredux (cdr x) delta :vecp vecp :state-onlyp state-onlyp))) (mv (cons car cdr) delta))))
Theorem:
(defthm vl-gateinstlist-p-of-vl-gateinstlist-delayredux.new-x (implies (and (force (vl-gateinstlist-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gateinstlist-delayredux-fn x delta vecp state-onlyp))) (vl-gateinstlist-p new-x))) :rule-classes :rewrite)
Theorem:
(defthm vl-delta-p-of-vl-gateinstlist-delayredux.delta (implies (and (force (vl-gateinstlist-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gateinstlist-delayredux-fn x delta vecp state-onlyp))) (vl-delta-p delta))) :rule-classes :rewrite)