(nat-bool-a4vec-upper-boundp bound x) → *
Function:
(defun nat-bool-a4vec-upper-boundp (bound x) (declare (xargs :guard (and (natp bound) (nat-bool-a4vec-p! x)))) (let ((__function__ 'nat-bool-a4vec-upper-boundp)) (declare (ignorable __function__)) (b* (((a4vec x) x)) (and (nat-bool-list-upper-boundp bound x.upper) (nat-bool-list-upper-boundp bound x.lower)))))
Theorem:
(defthm nat-bool-a4vec-vars-nonmember-by-upper-bound (implies (and (nat-bool-a4vec-upper-boundp bound x) (<= (nfix bound) v) (nat-bool-a4vec-p x)) (not (member v (nat-bool-a4vec-vars x)))))
Theorem:
(defthm nat-bool-a4vec-no-intersection-by-bounds (implies (and (nat-bool-a4vec-upper-boundp bound0 x0) (nat-bool-a4vec-lower-boundp bound1 x1) (<= (nfix bound0) (nfix bound1)) (nat-bool-a4vec-p x0) (nat-bool-a4vec-p x1)) (not (intersectp (nat-bool-a4vec-vars x0) (nat-bool-a4vec-vars x1)))))
Theorem:
(defthm nat-bool-a4vec-upper-boundp-higher (implies (and (nat-bool-a4vec-upper-boundp bound x) (<= (nfix bound) (nfix n))) (nat-bool-a4vec-upper-boundp n x)))
Theorem:
(defthm nat-bool-a4vec-upper-boundp-of-nfix-bound (equal (nat-bool-a4vec-upper-boundp (nfix bound) x) (nat-bool-a4vec-upper-boundp bound x)))
Theorem:
(defthm nat-bool-a4vec-upper-boundp-nat-equiv-congruence-on-bound (implies (nat-equiv bound bound-equiv) (equal (nat-bool-a4vec-upper-boundp bound x) (nat-bool-a4vec-upper-boundp bound-equiv x))) :rule-classes :congruence)
Theorem:
(defthm nat-bool-a4vec-upper-boundp-of-a4vec-fix-x (equal (nat-bool-a4vec-upper-boundp bound (a4vec-fix x)) (nat-bool-a4vec-upper-boundp bound x)))
Theorem:
(defthm nat-bool-a4vec-upper-boundp-a4vec-equiv-congruence-on-x (implies (a4vec-equiv x x-equiv) (equal (nat-bool-a4vec-upper-boundp bound x) (nat-bool-a4vec-upper-boundp bound x-equiv))) :rule-classes :congruence)