Builds a (slow) vl-dupeinst-alistp for a list of assignments.
(vl-make-dupeinst-alist x) → alist
Function:
(defun vl-make-dupeinst-alist (x) (declare (xargs :guard (vl-modinstlist-p x))) (let ((__function__ 'vl-make-dupeinst-alist)) (declare (ignorable __function__)) (b* ((alist (len x)) (alist (vl-make-dupeinst-alist-aux x alist)) (ans (hons-shrink-alist alist nil))) (fast-alist-free alist) (fast-alist-free ans) ans)))
Theorem:
(defthm vl-dupeinst-alistp-of-vl-make-dupeinst-alist (implies (and (force (vl-modinstlist-p x))) (b* ((alist (vl-make-dupeinst-alist x))) (vl-dupeinst-alistp alist))) :rule-classes :rewrite)