Remaining characters in a strin-p.
(strin-left x) → chars
This is an alternative to strin->chars that charlist-fixes the characters. This is generally preferable to using strin->chars directly, and allows us to avoid strin-p hyps in many theorems.
Function:
(defun strin-left (x) (declare (xargs :guard (strin-p x))) (let ((__function__ 'strin-left)) (declare (ignorable __function__)) (mbe :logic (charlist-fix (strin->chars x)) :exec (strin->chars x))))
Theorem:
(defthm character-listp-of-strin-left (b* ((chars (strin-left x))) (character-listp chars)) :rule-classes :rewrite)
Theorem:
(defthm true-listp-of-strin-left (true-listp (strin-left x)) :rule-classes :type-prescription)
Theorem:
(defthm strin-left-of-make-strin (equal (strin-left (make-strin :chars chars :line line :col col :file file)) (charlist-fix chars)))