(vl-gateinst-split x delta) → (mv new-x delta)
Function:
(defun vl-gateinst-split (x delta) (declare (xargs :guard (and (vl-gateinst-p x) (vl-delta-p delta)))) (let ((__function__ 'vl-gateinst-split)) (declare (ignorable __function__)) (b* (((vl-gateinst x) x) ((mv new-args delta) (vl-plainarglist-split x.args x delta)) (x-prime (change-vl-gateinst x :args new-args))) (mv x-prime delta))))
Theorem:
(defthm vl-gateinst-p-of-vl-gateinst-split.new-x (implies (and (force (vl-gateinst-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gateinst-split x delta))) (vl-gateinst-p new-x))) :rule-classes :rewrite)
Theorem:
(defthm vl-delta-p-of-vl-gateinst-split.delta (implies (and (force (vl-gateinst-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-gateinst-split x delta))) (vl-delta-p delta))) :rule-classes :rewrite)