(svarlist-boundedp-badguy x bound) → badguy
Function:
(defun svarlist-boundedp-badguy (x bound) (declare (xargs :guard (and (svarlist-p x) (natp bound)))) (let ((__function__ 'svarlist-boundedp-badguy)) (declare (ignorable __function__)) (if (atom x) (svar-set-index (address->svar (make-address :path "")) bound) (if (svar-boundedp (car x) bound) (svarlist-boundedp-badguy (cdr x) bound) (svar-fix (car x))))))
Theorem:
(defthm return-type-of-svarlist-boundedp-badguy (b* ((badguy (svarlist-boundedp-badguy x bound))) (iff (svar-p badguy) badguy)) :rule-classes :rewrite)
Theorem:
(defthm svarlist-boundedp-badguy-not-bounded (not (svar-boundedp (svarlist-boundedp-badguy x bound) bound)))
Theorem:
(defthm svarlist-boundedp-badguy-rw (implies (acl2::rewriting-positive-literal (cons 'svarlist-boundedp (cons x (cons bound 'nil)))) (equal (svarlist-boundedp x bound) (let ((badguy (svarlist-boundedp-badguy x bound))) (not (member badguy (svarlist-fix x)))))))
Theorem:
(defthm svarlist-boundedp-badguy-1 (implies (not (member (svarlist-boundedp-badguy x bound) (svarlist-fix x))) (svarlist-boundedp x bound)))
Theorem:
(defthm svarlist-boundedp-badguy-not-member-when-bounded (implies (and (svarlist-boundedp x bound) (svarlist-p x)) (not (member (svarlist-boundedp-badguy y bound) x))))
Theorem:
(defthm svarlist-boundedp-badguy-not-equal-svar-addr (implies (svar-boundedp y bound) (not (equal (svarlist-boundedp-badguy x bound) y))))
Theorem:
(defthm svarlist-boundedp-badguy-of-svarlist-fix-x (equal (svarlist-boundedp-badguy (svarlist-fix x) bound) (svarlist-boundedp-badguy x bound)))
Theorem:
(defthm svarlist-boundedp-badguy-svarlist-equiv-congruence-on-x (implies (svarlist-equiv x x-equiv) (equal (svarlist-boundedp-badguy x bound) (svarlist-boundedp-badguy x-equiv bound))) :rule-classes :congruence)
Theorem:
(defthm svarlist-boundedp-badguy-of-nfix-bound (equal (svarlist-boundedp-badguy x (nfix bound)) (svarlist-boundedp-badguy x bound)))
Theorem:
(defthm svarlist-boundedp-badguy-nat-equiv-congruence-on-bound (implies (nat-equiv bound bound-equiv) (equal (svarlist-boundedp-badguy x bound) (svarlist-boundedp-badguy x bound-equiv))) :rule-classes :congruence)