Print a string literal.
(print-stringlit stringlit pstate) → new-pstate
Function:
(defun print-stringlit (stringlit pstate) (declare (xargs :guard (and (stringlitp stringlit) (pristatep pstate)))) (let ((__function__ 'print-stringlit)) (declare (ignorable __function__)) (b* (((stringlit stringlit) stringlit) (pstate (print-eprefix-option stringlit.prefix? pstate)) (pstate (print-astring "\"" pstate)) (pstate (print-s-char-list stringlit.schars pstate)) (pstate (print-astring "\"" pstate))) pstate)))
Theorem:
(defthm pristatep-of-print-stringlit (b* ((new-pstate (print-stringlit stringlit pstate))) (pristatep new-pstate)) :rule-classes :rewrite)
Theorem:
(defthm print-stringlit-of-stringlit-fix-stringlit (equal (print-stringlit (stringlit-fix stringlit) pstate) (print-stringlit stringlit pstate)))
Theorem:
(defthm print-stringlit-stringlit-equiv-congruence-on-stringlit (implies (stringlit-equiv stringlit stringlit-equiv) (equal (print-stringlit stringlit pstate) (print-stringlit stringlit-equiv pstate))) :rule-classes :congruence)
Theorem:
(defthm print-stringlit-of-pristate-fix-pstate (equal (print-stringlit stringlit (pristate-fix pstate)) (print-stringlit stringlit pstate)))
Theorem:
(defthm print-stringlit-pristate-equiv-congruence-on-pstate (implies (pristate-equiv pstate pstate-equiv) (equal (print-stringlit stringlit pstate) (print-stringlit stringlit pstate-equiv))) :rule-classes :congruence)