Figure out where we'll be after printing a string.
Function:
(defun vl-col-after-printing-string$inline (col string) (declare (xargs :guard (and (natp col) (stringp string)))) (declare (type unsigned-byte col) (type string string)) (declare (xargs :split-types t)) (let ((__function__ 'vl-col-after-printing-string)) (declare (ignorable __function__)) (mbe :logic (vl-col-after-printing-chars col (explode string)) :exec (vl-col-after-printing-string-aux col string 0 (length string)))))
Theorem:
(defthm natp-of-vl-col-after-printing-string (b* ((new-col (vl-col-after-printing-string$inline col string))) (natp new-col)) :rule-classes :type-prescription)
Theorem:
(defthm vl-col-after-printing-string$inline-of-nfix-col (equal (vl-col-after-printing-string$inline (nfix col) string) (vl-col-after-printing-string$inline col string)))
Theorem:
(defthm vl-col-after-printing-string$inline-nat-equiv-congruence-on-col (implies (acl2::nat-equiv col col-equiv) (equal (vl-col-after-printing-string$inline col string) (vl-col-after-printing-string$inline col-equiv string))) :rule-classes :congruence)
Theorem:
(defthm vl-col-after-printing-string$inline-of-str-fix-string (equal (vl-col-after-printing-string$inline col (str-fix string)) (vl-col-after-printing-string$inline col string)))
Theorem:
(defthm vl-col-after-printing-string$inline-streqv-congruence-on-string (implies (streqv string string-equiv) (equal (vl-col-after-printing-string$inline col string) (vl-col-after-printing-string$inline col string-equiv))) :rule-classes :congruence)