(svex-envlists-agree vars x y) → *
Function:
(defun svex-envlists-agree (vars x y) (declare (xargs :guard (and (svarlist-p vars) (svex-envlist-p x) (svex-envlist-p y)))) (let ((__function__ 'svex-envlists-agree)) (declare (ignorable __function__)) (if (atom x) (atom y) (and (consp y) (svex-envs-agree vars (car x) (car y)) (svex-envlists-agree vars (cdr x) (cdr y))))))
Theorem:
(defthm svex-envs-agree-nth-when-svex-envlists-agree (implies (svex-envlists-agree vars x y) (svex-envs-agree vars (nth n x) (nth n y))))
Theorem:
(defthm svex-envlists-agree-of-append-vars (iff (svex-envlists-agree (append vars1 vars2) x y) (and (svex-envlists-agree vars1 x y) (svex-envlists-agree vars2 x y))))
Theorem:
(defthm svex-envlists-agree-of-svarlist-fix-vars (equal (svex-envlists-agree (svarlist-fix vars) x y) (svex-envlists-agree vars x y)))
Theorem:
(defthm svex-envlists-agree-svarlist-equiv-congruence-on-vars (implies (svarlist-equiv vars vars-equiv) (equal (svex-envlists-agree vars x y) (svex-envlists-agree vars-equiv x y))) :rule-classes :congruence)
Theorem:
(defthm svex-envlists-agree-of-svex-envlist-fix-x (equal (svex-envlists-agree vars (svex-envlist-fix x) y) (svex-envlists-agree vars x y)))
Theorem:
(defthm svex-envlists-agree-svex-envlist-equiv-congruence-on-x (implies (svex-envlist-equiv x x-equiv) (equal (svex-envlists-agree vars x y) (svex-envlists-agree vars x-equiv y))) :rule-classes :congruence)
Theorem:
(defthm svex-envlists-agree-of-svex-envlist-fix-y (equal (svex-envlists-agree vars x (svex-envlist-fix y)) (svex-envlists-agree vars x y)))
Theorem:
(defthm svex-envlists-agree-svex-envlist-equiv-congruence-on-y (implies (svex-envlist-equiv y y-equiv) (equal (svex-envlists-agree vars x y) (svex-envlists-agree vars x y-equiv))) :rule-classes :congruence)