(vl-always-stmttemps x delta) → (mv new-x delta)
Function:
(defun vl-always-stmttemps (x delta) (declare (xargs :guard (and (vl-always-p x) (vl-delta-p delta)))) (let ((__function__ 'vl-always-stmttemps)) (declare (ignorable __function__)) (b* (((vl-always x) x) ((mv clk ?body) (vl-match-posedge-clk x)) ((unless clk) (mv x delta)) ((mv stmt delta) (vl-stmt-stmttemps x.stmt delta x))) (mv (change-vl-always x :stmt stmt) delta))))
Theorem:
(defthm vl-always-p-of-vl-always-stmttemps.new-x (implies (and (force (vl-always-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-always-stmttemps x delta))) (vl-always-p new-x))) :rule-classes :rewrite)
Theorem:
(defthm vl-delta-p-of-vl-always-stmttemps.delta (implies (and (force (vl-always-p x)) (force (vl-delta-p delta))) (b* (((mv ?new-x ?delta) (vl-always-stmttemps x delta))) (vl-delta-p delta))) :rule-classes :rewrite)