(svstmt-initialize-locals locals) → scope
Function:
(defun svstmt-initialize-locals (locals) (declare (xargs :guard (svarlist-p locals))) (let ((__function__ 'svstmt-initialize-locals)) (declare (ignorable __function__)) (if (atom locals) nil (svex-fastacons (car locals) (svex-x) (svstmt-initialize-locals (cdr locals))))))
Theorem:
(defthm svex-alist-p-of-svstmt-initialize-locals (b* ((scope (svstmt-initialize-locals locals))) (svex-alist-p scope)) :rule-classes :rewrite)
Theorem:
(defthm svex-lookup-in-svstmt-initialize-locals (b* ((?scope (svstmt-initialize-locals locals))) (iff (svex-lookup x scope) (member (svar-fix x) (svarlist-fix locals)))))
Theorem:
(defthm svex-alist-vars-of-initialize-locals (b* ((?scope (svstmt-initialize-locals locals))) (equal (svex-alist-vars scope) nil)))
Theorem:
(defthm svstmt-initialize-locals-of-svarlist-fix-locals (equal (svstmt-initialize-locals (svarlist-fix locals)) (svstmt-initialize-locals locals)))
Theorem:
(defthm svstmt-initialize-locals-svarlist-equiv-congruence-on-locals (implies (svarlist-equiv locals locals-equiv) (equal (svstmt-initialize-locals locals) (svstmt-initialize-locals locals-equiv))) :rule-classes :congruence)