(fresh-numbered-string-wrt base number-prefix number number-suffix blacklist) → string
Function:
(defun fresh-numbered-string-wrt0 (base number-prefix number number-suffix blacklist steps) (declare (type (unsigned-byte 60) steps)) (declare (xargs :guard (and (stringp base) (stringp number-prefix) (natp number) (stringp number-suffix) (acl2::string-setp blacklist)))) (let ((__function__ 'fresh-numbered-string-wrt0)) (declare (ignorable __function__)) (b* (((when (eql 0 (mbe :logic (nfix steps) :exec (acl2::the-fixnat steps)))) (mbe :logic (if (stringp base) base "") :exec base)) (numbered-string (make-numbered-string base number-prefix number number-suffix))) (if (in numbered-string blacklist) (fresh-numbered-string-wrt0 base number-prefix (+ number 1) number-suffix blacklist (- steps 1)) numbered-string))))
Theorem:
(defthm stringp-of-fresh-numbered-string-wrt0 (b* ((string (fresh-numbered-string-wrt0 base number-prefix number number-suffix blacklist steps))) (stringp string)) :rule-classes :rewrite)
Function:
(defun fresh-numbered-string-wrt (base number-prefix number number-suffix blacklist) (declare (xargs :guard (and (stringp base) (stringp number-prefix) (natp number) (stringp number-suffix) (acl2::string-setp blacklist)))) (let ((__function__ 'fresh-numbered-string-wrt)) (declare (ignorable __function__)) (fresh-numbered-string-wrt0 base number-prefix number number-suffix blacklist (acl2::the-fixnat (- (expt 2 acl2::*fixnat-bits*) 1)))))
Theorem:
(defthm stringp-of-fresh-numbered-string-wrt (b* ((string (fresh-numbered-string-wrt base number-prefix number number-suffix blacklist))) (stringp string)) :rule-classes :rewrite)