(vl-pp-forloop-assigns x &key (ps 'ps)) → ps
Function:
(defun vl-pp-forloop-assigns-fn (x ps) (declare (xargs :stobjs (ps))) (declare (xargs :guard (vl-stmtlist-p x))) (let ((__function__ 'vl-pp-forloop-assigns)) (declare (ignorable __function__)) (b* (((when (atom x)) ps) (x1 (car x)) (ps (vl-stmt-case x1 (:vl-assignstmt (vl-ps-seq (vl-pp-expr x1.lvalue) (vl-println? " = ") (vl-pp-rhs x1.rhs))) (:otherwise (prog2$ (raise "Bad type of statement for for loop initialization/step: ~x0~%" (vl-stmt-kind x1)) ps)))) ((when (atom (cdr x))) ps) (ps (vl-print ", "))) (vl-pp-forloop-assigns (cdr x)))))
Theorem:
(defthm vl-pp-forloop-assigns-fn-of-vl-stmtlist-fix-x (equal (vl-pp-forloop-assigns-fn (vl-stmtlist-fix x) ps) (vl-pp-forloop-assigns-fn x ps)))
Theorem:
(defthm vl-pp-forloop-assigns-fn-vl-stmtlist-equiv-congruence-on-x (implies (vl-stmtlist-equiv x x-equiv) (equal (vl-pp-forloop-assigns-fn x ps) (vl-pp-forloop-assigns-fn x-equiv ps))) :rule-classes :congruence)