• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
          • Ps
          • Basic-printing
            • Vl-println?
            • Vl-printable-p
            • Vl-print
            • Vl-col-after-printing-chars
            • Vl-print-strings-with-commas
            • Vl-col-after-printing-string
              • Vl-col-after-printing-string-aux
            • Vl-string-needs-html-encoding-p
            • Vl-println-markup
            • Vl-print-strings-as-lines
            • Vl-print-url
            • Vl-print-nat
            • Vl-indent
            • Vl-println
            • Vl-print-markup
            • Vl-ps-seq
            • Vl-cw-ps-seq
            • Vl-when-html
            • Vl-ps-span
          • Verilog-printing
          • Printing-locally
          • Formatted-printing
          • Accessing-printed-output
          • Vl-printedlist
          • Json-printing
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Testing-utilities
    • Math
  • Basic-printing

Vl-col-after-printing-string

Figure out where we'll be after printing a string.

Signature
(vl-col-after-printing-string col string) → new-col
Arguments
col — Current column we're at.
    Guard (natp col).
string — String we're about to print, not yet reversed.
    Guard (stringp string).
Returns
new-col — Type (natp new-col).

Definitions and Theorems

Function: vl-col-after-printing-string$inline

(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: natp-of-vl-col-after-printing-string

(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: vl-col-after-printing-string$inline-of-nfix-col

(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: vl-col-after-printing-string$inline-nat-equiv-congruence-on-col

(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: vl-col-after-printing-string$inline-of-str-fix-string

(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: vl-col-after-printing-string$inline-streqv-congruence-on-string

(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)

Subtopics

Vl-col-after-printing-string-aux