(svar-lookup k x) → *
Function:
(defun svar-lookup (k x) (declare (xargs :guard (and (svar-p k) (svar-alist-p x)))) (let ((__function__ 'svar-lookup)) (declare (ignorable __function__)) (mbe :logic (if (atom x) nil (if (and (consp (car x)) (svar-p (caar x)) (equal (svar-fix k) (caar x))) (car x) (svar-lookup k (cdr x)))) :exec (hons-get k x))))
Theorem:
(defthm svar-lookup-of-cons (equal (svar-lookup k (cons a b)) (if (and (consp a) (svar-p (car a)) (svar-equiv (car a) k)) a (svar-lookup k b))))
Theorem:
(defthm svar-lookup-of-atom (implies (not (consp x)) (equal (svar-lookup k x) nil)) :rule-classes ((:rewrite :backchain-limit-lst 0)))
Theorem:
(defthm svar-lookup-of-append (equal (svar-lookup k (append a b)) (or (svar-lookup k a) (svar-lookup k b))))
Theorem:
(defthm svar-lookup-of-svex-alist-fix (iff (svar-lookup k (svex-alist-fix x)) (svar-lookup k x)))
Theorem:
(defthm svar-lookup-of-svex-env-fix (iff (svar-lookup k (svex-env-fix x)) (svar-lookup k x)))
Theorem:
(defthm svar-lookup-of-true-list-fix (equal (svar-lookup k (true-list-fix x)) (svar-lookup k x)))
Theorem:
(defthm svar-lookup-of-svar-fix-k (equal (svar-lookup (svar-fix k) x) (svar-lookup k x)))
Theorem:
(defthm svar-lookup-svar-equiv-congruence-on-k (implies (svar-equiv k k-equiv) (equal (svar-lookup k x) (svar-lookup k-equiv x))) :rule-classes :congruence)
Theorem:
(defthm svar-lookup-of-svar-alist-fix-x (equal (svar-lookup k (svar-alist-fix x)) (svar-lookup k x)))
Theorem:
(defthm svar-lookup-svar-alist-equiv-congruence-on-x (implies (svar-alist-equiv x x-equiv) (equal (svar-lookup k x) (svar-lookup k x-equiv))) :rule-classes :congruence)