(fal-all-boundp keys alist) determines if every key in
(fal-all-boundp keys alist) → bool
The
Function:
(defun fal-all-boundp (keys alist) (declare (xargs :guard t)) (let ((__function__ 'fal-all-boundp)) (declare (ignorable __function__)) (mbe :logic (if (atom keys) t (and (hons-assoc-equal (car keys) alist) (fal-all-boundp (cdr keys) alist))) :exec (if (atom keys) t (if (and (worth-hashing keys) (worth-hashing alist)) (with-fast-alist alist (fal-all-boundp-fast keys alist)) (fal-all-boundp-slow keys alist))))))
Theorem:
(defthm fal-all-boundp-fast-removal (equal (fal-all-boundp-fast keys alist) (fal-all-boundp keys alist)))
Theorem:
(defthm fal-all-boundp-slow-removal (equal (fal-all-boundp-slow keys alist) (fal-all-boundp keys alist)))
Theorem:
(defthm fal-all-boundp-when-atom (implies (atom keys) (equal (fal-all-boundp keys alist) t)))
Theorem:
(defthm fal-all-boundp-of-cons (equal (fal-all-boundp (cons a keys) alist) (and (hons-get a alist) (fal-all-boundp keys alist))))
Theorem:
(defthm set-equiv-implies-equal-fal-all-boundp-1 (implies (set-equiv x x-equiv) (equal (fal-all-boundp x alist) (fal-all-boundp x-equiv alist))) :rule-classes (:congruence))
Theorem:
(defthm alist-equiv-implies-equal-fal-all-boundp-2 (implies (alist-equiv alist alist-equiv) (equal (fal-all-boundp x alist) (fal-all-boundp x alist-equiv))) :rule-classes (:congruence))
Theorem:
(defthm fal-all-boundp-of-list-fix (equal (fal-all-boundp (list-fix x) alist) (fal-all-boundp x alist)))
Theorem:
(defthm fal-all-boundp-of-rev (equal (fal-all-boundp (rev x) alist) (fal-all-boundp x alist)))
Theorem:
(defthm fal-all-boundp-of-append (equal (fal-all-boundp (append x y) alist) (and (fal-all-boundp x alist) (fal-all-boundp y alist))))
Theorem:
(defthm fal-all-boundp-of-revappend (equal (fal-all-boundp (revappend x y) alist) (and (fal-all-boundp x alist) (fal-all-boundp y alist))))