Check if an octal numeral is well-formed.
(octdig/uscore-list-wfp dus) → yes/no
An
Function:
(defun octdig/uscore-list-wfp (dus) (declare (xargs :guard (octdig/uscore-listp dus))) (let ((__function__ 'octdig/uscore-list-wfp)) (declare (ignorable __function__)) (and (consp dus) (equal (octdig/uscore-fix (car dus)) (octdig/uscore-digit (char-code #\0))) (octdig/uscore-case (car (last dus)) :digit) (> (len (octdig/uscores-to-digits dus)) 1))))
Theorem:
(defthm booleanp-of-octdig/uscore-list-wfp (b* ((yes/no (octdig/uscore-list-wfp dus))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm octdig/uscore-list-wfp-of-octdig/uscore-list-fix-dus (equal (octdig/uscore-list-wfp (octdig/uscore-list-fix dus)) (octdig/uscore-list-wfp dus)))
Theorem:
(defthm octdig/uscore-list-wfp-octdig/uscore-list-equiv-congruence-on-dus (implies (octdig/uscore-list-equiv dus dus-equiv) (equal (octdig/uscore-list-wfp dus) (octdig/uscore-list-wfp dus-equiv))) :rule-classes :congruence)