(vl-print-nat-main n &key (ps 'ps)) → ps
Function:
(defun vl-print-nat-main-fn (n ps) (declare (xargs :stobjs (ps))) (declare (xargs :guard (natp n))) (declare (type unsigned-byte n)) (declare (xargs :split-types t)) (let ((__function__ 'vl-print-nat-main)) (declare (ignorable __function__)) (b* (((when (zp n)) (vl-ps-seq (vl-ps-update-rchars (cons #\0 (vl-ps->rchars))) (vl-ps-update-col (the unsigned-byte (+ 1 (vl-ps->col)))))) ((mv rchars col) (vl-print-natchars-aux n (vl-ps->rchars) (vl-ps->col)))) (vl-ps-seq (vl-ps-update-rchars rchars) (vl-ps-update-col col)))))
Theorem:
(defthm vl-print-nat-main-fn-of-nfix-n (equal (vl-print-nat-main-fn (nfix n) ps) (vl-print-nat-main-fn n ps)))
Theorem:
(defthm vl-print-nat-main-fn-nat-equiv-congruence-on-n (implies (acl2::nat-equiv n n-equiv) (equal (vl-print-nat-main-fn n ps) (vl-print-nat-main-fn n-equiv ps))) :rule-classes :congruence)