Maps svex-xeval over an svex alist.
(svex-alist-xeval x) → result
Function:
(defun svex-alist-xeval (x) (declare (xargs :guard (svex-alist-p x))) (let ((__function__ 'svex-alist-xeval)) (declare (ignorable __function__)) (mbe :logic (if (atom x) nil (if (mbt (and (consp (car x)) (svar-p (caar x)))) (cons (cons (caar x) (svex-xeval (cdar x))) (svex-alist-xeval (cdr x))) (svex-alist-xeval (cdr x)))) :exec (svex-alist-xeval-aux x))))
Theorem:
(defthm svex-env-p-of-svex-alist-xeval (b* ((result (svex-alist-xeval x))) (svex-env-p result)) :rule-classes :rewrite)
Theorem:
(defthm svex-alist-xeval-of-svex-alist-fix-x (equal (svex-alist-xeval (svex-alist-fix x)) (svex-alist-xeval x)))
Theorem:
(defthm svex-alist-xeval-svex-alist-equiv-congruence-on-x (implies (svex-alist-equiv x x-equiv) (equal (svex-alist-xeval x) (svex-alist-xeval x-equiv))) :rule-classes :congruence)
Theorem:
(defthm svex-env-lookup-of-svex-alist-xeval (equal (svex-env-lookup k (svex-alist-xeval x)) (let ((xk (svex-lookup k x))) (if xk (svex-xeval xk) (4vec-x)))))
Theorem:
(defthm svex-env-boundp-of-svex-alist-xeval (iff (svex-env-boundp k (svex-alist-xeval x)) (svex-lookup k x)))
Theorem:
(defthm svex-alist-xeval-of-append (equal (svex-alist-xeval (append a b)) (append (svex-alist-xeval a) (svex-alist-xeval b))))
Theorem:
(defthm alist-keys-of-svex-alist-xeval (equal (alist-keys (svex-alist-xeval x)) (svex-alist-keys x)))