(vl-make-duperhs-alist-aux x alist) → new-alist
Function:
(defun vl-make-duperhs-alist-aux (x alist) (declare (xargs :guard (and (vl-assignlist-p x) (vl-duperhs-alistp alist)))) (let ((__function__ 'vl-make-duperhs-alist-aux)) (declare (ignorable __function__)) (b* (((when (atom x)) alist) (x1 (car x)) ((vl-assign x1) x1) (rhs1 (hons-copy (vl-expr-strip x1.expr))) (look (hons-get rhs1 alist)) (alist (hons-acons rhs1 (cons x1 (cdr look)) alist))) (vl-make-duperhs-alist-aux (cdr x) alist))))
Theorem:
(defthm vl-duperhs-alistp-of-vl-make-duperhs-alist-aux (implies (and (vl-assignlist-p x) (vl-duperhs-alistp alist)) (b* ((new-alist (vl-make-duperhs-alist-aux x alist))) (vl-duperhs-alistp new-alist))) :rule-classes :rewrite)