(nat-bool-list-upper-boundp bound x) → *
Function:
(defun nat-bool-list-upper-boundp (bound x) (declare (xargs :guard (and (natp bound) (nat-bool-listp x)))) (let ((__function__ 'nat-bool-list-upper-boundp)) (declare (ignorable __function__)) (if (atom x) t (and (or (booleanp (car x)) (< (lnfix (car x)) (lnfix bound))) (nat-bool-list-upper-boundp bound (cdr x))))))
Theorem:
(defthm nat-bool-list-upper-boundp-of-list-fix (equal (nat-bool-list-upper-boundp bound (list-fix x)) (nat-bool-list-upper-boundp bound x)))
Theorem:
(defthm nat-bool-list-nonmember-by-upper-bound (implies (and (nat-bool-list-upper-boundp bound x) (<= (nfix bound) v) (nat-bool-listp x)) (not (member v (nat-bool-list-nats x)))))
Theorem:
(defthm nat-bool-list-no-intersection-by-bounds (implies (and (nat-bool-list-upper-boundp bound0 x0) (nat-bool-list-lower-boundp bound1 x1) (<= (nfix bound0) (nfix bound1)) (nat-bool-listp x0) (nat-bool-listp x1)) (not (intersectp (nat-bool-list-nats x0) (nat-bool-list-nats x1)))))
Theorem:
(defthm nat-bool-list-upper-boundp-higher (implies (and (nat-bool-list-upper-boundp bound x) (<= (nfix bound) (nfix n))) (nat-bool-list-upper-boundp n x)))
Theorem:
(defthm nat-bool-list-upper-boundp-of-nfix-bound (equal (nat-bool-list-upper-boundp (nfix bound) x) (nat-bool-list-upper-boundp bound x)))
Theorem:
(defthm nat-bool-list-upper-boundp-nat-equiv-congruence-on-bound (implies (nat-equiv bound bound-equiv) (equal (nat-bool-list-upper-boundp bound x) (nat-bool-list-upper-boundp bound-equiv x))) :rule-classes :congruence)