(update-ppstate->char i char+pos ppstate) → ppstate
Function:
(defun update-ppstate->char (i char+pos ppstate) (declare (xargs :stobjs (ppstate))) (declare (xargs :guard (and (natp i) (char+position-p char+pos)))) (declare (xargs :guard (< i (ppstate->chars-length ppstate)))) (b* ((ppstate (ppstate-fix ppstate))) (mbe :logic (if (< (nfix i) (ppstate->chars-length ppstate)) (raw-update-ppstate->char (nfix i) (char+position-fix char+pos) ppstate) ppstate) :exec (raw-update-ppstate->char i char+pos ppstate))))
Theorem:
(defthm ppstatep-of-update-ppstate->char (b* ((ppstate (update-ppstate->char i char+pos ppstate))) (ppstatep ppstate)) :rule-classes :rewrite)