(svar-alist-keys x) → vars
Function:
(defun svar-alist-keys (x) (declare (xargs :guard (svar-alist-p x))) (let ((__function__ 'svar-alist-keys)) (declare (ignorable __function__)) (if (atom x) nil (if (mbt (and (consp (car x)) (svar-p (caar x)))) (cons (caar x) (svar-alist-keys (cdr x))) (svar-alist-keys (cdr x))))))
Theorem:
(defthm svarlist-p-of-svar-alist-keys (b* ((vars (svar-alist-keys x))) (svarlist-p vars)) :rule-classes :rewrite)
Theorem:
(defthm svar-alist-keys-of-append (equal (svar-alist-keys (append a b)) (append (svar-alist-keys a) (svar-alist-keys b))))
Theorem:
(defthm svar-alist-keys-of-svex-env-fix-x (equal (svar-alist-keys (svex-env-fix x)) (svar-alist-keys x)))
Theorem:
(defthm svar-alist-keys-svex-env-equiv-congruence-on-x (implies (svex-env-equiv x x-equiv) (equal (svar-alist-keys x) (svar-alist-keys x-equiv))) :rule-classes :congruence)
Theorem:
(defthm svar-alist-keys-of-svex-alist-fix-x (equal (svar-alist-keys (svex-alist-fix x)) (svar-alist-keys x)))
Theorem:
(defthm svar-alist-keys-svex-alist-equiv-congruence-on-x (implies (svex-alist-equiv x x-equiv) (equal (svar-alist-keys x) (svar-alist-keys x-equiv))) :rule-classes :congruence)
Theorem:
(defthm svar-alist-keys-of-true-list-fix (equal (svar-alist-keys (true-list-fix x)) (svar-alist-keys x)))
Theorem:
(defthm svar-alist-keys-of-svar-alist-fix-x (equal (svar-alist-keys (svar-alist-fix x)) (svar-alist-keys x)))
Theorem:
(defthm svar-alist-keys-svar-alist-equiv-congruence-on-x (implies (svar-alist-equiv x x-equiv) (equal (svar-alist-keys x) (svar-alist-keys x-equiv))) :rule-classes :congruence)