Print zero or more characters.
The characters are supplied in a list (of their codes). They are printed from left to right.
Function:
(defun print-chars (chars pstate) (declare (xargs :guard (and (nat-listp chars) (pristatep pstate)))) (declare (xargs :guard (grammar-character-listp chars))) (let ((__function__ 'print-chars)) (declare (ignorable __function__)) (b* (((when (endp chars)) (pristate-fix pstate)) (pstate (print-char (car chars) pstate))) (print-chars (cdr chars) pstate))))
Theorem:
(defthm pristatep-of-print-chars (b* ((new-pstate (print-chars chars pstate))) (pristatep new-pstate)) :rule-classes :rewrite)
Theorem:
(defthm print-chars-of-pristate-fix-pstate (equal (print-chars chars (pristate-fix pstate)) (print-chars chars pstate)))
Theorem:
(defthm print-chars-pristate-equiv-congruence-on-pstate (implies (pristate-equiv pstate pstate-equiv) (equal (print-chars chars pstate) (print-chars chars pstate-equiv))) :rule-classes :congruence)