Function:
(defun svex-normalize-concats (x) (declare (xargs :guard (svex-p x))) (let ((__function__ 'svex-normalize-concats)) (declare (ignorable __function__)) (b* ((ctxalist (svexlist-make-top-context-alist (list x) nil)) (res (svex-normalize-concats-aux x ctxalist))) (clear-memoize-table 'svex-normalize-concats-aux) (fast-alist-free ctxalist) res)))
Theorem:
(defthm svex-p-of-svex-normalize-concats (b* ((new-x (svex-normalize-concats x))) (svex-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm svex-normalize-concats-correct (b* ((?new-x (svex-normalize-concats x))) (equal (svex-eval new-x env) (svex-eval x env))))
Theorem:
(defthm vars-of-svex-normalize-concats (b* ((?new-x (svex-normalize-concats x))) (implies (not (member v (svex-vars x))) (not (member v (svex-vars new-x))))))
Theorem:
(defthm svex-normalize-concats-of-svex-fix-x (equal (svex-normalize-concats (svex-fix x)) (svex-normalize-concats x)))
Theorem:
(defthm svex-normalize-concats-svex-equiv-congruence-on-x (implies (svex-equiv x x-equiv) (equal (svex-normalize-concats x) (svex-normalize-concats x-equiv))) :rule-classes :congruence)