(svexlist-resolve x) → res
Function:
(defun svexlist-resolve (x) (declare (xargs :guard (svexlist-p x))) (let ((__function__ 'svexlist-resolve)) (declare (ignorable __function__)) (if (atom x) (svex-z) (if (atom (cdr x)) (svex-fix (car x)) (svcall* res (car x) (svexlist-resolve (cdr x)))))))
Theorem:
(defthm svex-p-of-svexlist-resolve (b* ((res (svexlist-resolve x))) (svex-p res)) :rule-classes :rewrite)
Theorem:
(defthm svex-vars-of-svexlist-resolve (set-equiv (svex-vars (svexlist-resolve x)) (svexlist-vars x)))
Theorem:
(defthm svexlist-resolve-of-svexlist-fix-x (equal (svexlist-resolve (svexlist-fix x)) (svexlist-resolve x)))
Theorem:
(defthm svexlist-resolve-svexlist-equiv-congruence-on-x (implies (svexlist-equiv x x-equiv) (equal (svexlist-resolve x) (svexlist-resolve x-equiv))) :rule-classes :congruence)