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