(svdecomp-ev-symenv x env) → res
Function:
(defun svdecomp-ev-symenv (x env) (declare (xargs :guard (svdecomp-symenv-p x))) (let ((__function__ 'svdecomp-ev-symenv)) (declare (ignorable __function__)) (if (atom x) nil (if (mbt (and (consp (car x)) (svar-p (caar x)))) (cons (cons (caar x) (svdecomp-ev (cdar x) env)) (svdecomp-ev-symenv (cdr x) env)) (svdecomp-ev-symenv (cdr x) env)))))
Theorem:
(defthm svar-alist-p-of-svdecomp-ev-symenv (b* ((res (svdecomp-ev-symenv x env))) (svar-alist-p res)) :rule-classes :rewrite)
Theorem:
(defthm eval-lookup-of-svdecomp-ev-symenv (equal (svar-lookup k (svdecomp-ev-symenv x env)) (and (svar-lookup k x) (cons (svar-fix k) (svdecomp-ev (cdr (svar-lookup k x)) env)))))
Theorem:
(defthm svdecomp-ev-symenv-of-svar-alist-fix-x (equal (svdecomp-ev-symenv (svar-alist-fix x) env) (svdecomp-ev-symenv x env)))
Theorem:
(defthm svdecomp-ev-symenv-svar-alist-equiv-congruence-on-x (implies (svar-alist-equiv x x-equiv) (equal (svdecomp-ev-symenv x env) (svdecomp-ev-symenv x-equiv env))) :rule-classes :congruence)