(svex-mask-lookup x al) → mask
Function:
(defun svex-mask-lookup (x al) (declare (xargs :guard (and (svex-p x) (svex-mask-alist-p al)))) (let ((__function__ 'svex-mask-lookup)) (declare (ignorable __function__)) (b* ((look (hons-get (svex-fix x) al))) (if look (4vmask-fix (cdr look)) 0))))
Theorem:
(defthm 4vmask-p-of-svex-mask-lookup (b* ((mask (svex-mask-lookup x al))) (4vmask-p mask)) :rule-classes :type-prescription)
Theorem:
(defthm svex-mask-lookup-of-svex-fix-x (equal (svex-mask-lookup (svex-fix x) al) (svex-mask-lookup x al)))
Theorem:
(defthm svex-mask-lookup-svex-equiv-congruence-on-x (implies (svex-equiv x x-equiv) (equal (svex-mask-lookup x al) (svex-mask-lookup x-equiv al))) :rule-classes :congruence)
Theorem:
(defthm svex-mask-lookup-of-svex-mask-alist-fix-al (equal (svex-mask-lookup x (svex-mask-alist-fix al)) (svex-mask-lookup x al)))
Theorem:
(defthm svex-mask-lookup-svex-mask-alist-equiv-congruence-on-al (implies (svex-mask-alist-equiv al al-equiv) (equal (svex-mask-lookup x al) (svex-mask-lookup x al-equiv))) :rule-classes :congruence)
Theorem:
(defthm svex-mask-lookup-of-svex-mask-acons (equal (svex-mask-lookup x (svex-mask-acons y m al)) (if (equal (svex-fix x) (svex-fix y)) (4vmask-fix m) (svex-mask-lookup x al))))
Theorem:
(defthm svex-mask-lookup-of-nil (equal (svex-mask-lookup k nil) 0))
Theorem:
(defthm svex-mask-lookup-of-cons (equal (svex-mask-lookup key1 (cons (cons key val) rest)) (if (equal (svex-fix key1) key) (4vmask-fix val) (svex-mask-lookup key1 rest))))