(svex-env-reduce-aux keys env) → env1
Function:
(defun svex-env-reduce-aux (keys env) (declare (xargs :guard (and (svarlist-p keys) (svex-env-p env)))) (let ((__function__ 'svex-env-reduce-aux)) (declare (ignorable __function__)) (if (atom keys) nil (b* ((key (svar-fix (car keys))) (look (hons-get key (svex-env-fix env)))) (if look (cons (cons key (cdr look)) (svex-env-reduce-aux (cdr keys) env)) (svex-env-reduce-aux (cdr keys) env))))))
Theorem:
(defthm svex-env-p-of-svex-env-reduce-aux (b* ((env1 (svex-env-reduce-aux keys env))) (svex-env-p env1)) :rule-classes :rewrite)
Theorem:
(defthm svex-env-reduce-aux-of-svarlist-fix-keys (equal (svex-env-reduce-aux (svarlist-fix keys) env) (svex-env-reduce-aux keys env)))
Theorem:
(defthm svex-env-reduce-aux-svarlist-equiv-congruence-on-keys (implies (svarlist-equiv keys keys-equiv) (equal (svex-env-reduce-aux keys env) (svex-env-reduce-aux keys-equiv env))) :rule-classes :congruence)
Theorem:
(defthm svex-env-reduce-aux-of-svex-env-fix-env (equal (svex-env-reduce-aux keys (svex-env-fix env)) (svex-env-reduce-aux keys env)))
Theorem:
(defthm svex-env-reduce-aux-svex-env-equiv-congruence-on-env (implies (svex-env-equiv env env-equiv) (equal (svex-env-reduce-aux keys env) (svex-env-reduce-aux keys env-equiv))) :rule-classes :congruence)