(svex-concat-list widths x) → concat
Function:
(defun svex-concat-list (widths x) (declare (xargs :guard (and (nat-listp widths) (sv::svexlist-p x)))) (declare (xargs :guard (eql (len widths) (len x)))) (let ((__function__ 'svex-concat-list)) (declare (ignorable __function__)) (if (atom x) (svex-x) (svex-concat-list-aux (cdr widths) (cdr x) (car x)))))
Theorem:
(defthm svex-p-of-svex-concat-list (b* ((concat (svex-concat-list widths x))) (sv::svex-p concat)) :rule-classes :rewrite)
Theorem:
(defthm vars-of-svex-concat-list (implies (not (member v (sv::svexlist-vars x))) (not (member v (sv::svex-vars (svex-concat-list widths x))))))
Theorem:
(defthm svex-concat-list-of-svexlist-fix-x (equal (svex-concat-list widths (sv::svexlist-fix x)) (svex-concat-list widths x)))
Theorem:
(defthm svex-concat-list-svexlist-equiv-congruence-on-x (implies (sv::svexlist-equiv x x-equiv) (equal (svex-concat-list widths x) (svex-concat-list widths x-equiv))) :rule-classes :congruence)