Assuming new-st is a modified version of st, restores any changed fast alists in st and frees them in new-st. Side effects only.
(vl-implicitsts-restore-fast-alists st new-st) → *
Function:
(defun vl-implicitsts-restore-fast-alists (st new-st) (declare (xargs :guard (and (vl-implicitst-p st) (vl-implicitst-p new-st)))) (let ((__function__ 'vl-implicitsts-restore-fast-alists)) (declare (ignorable __function__)) (b* (((vl-implicitst st)) ((vl-implicitst new-st))) (or (same-lengthp st.portdecls new-st.portdecls) (progn$ (fast-alist-free new-st.portdecls) (make-fast-alist st.portdecls))) (or (same-lengthp st.decls new-st.decls) (progn$ (fast-alist-free new-st.decls) (make-fast-alist st.decls))))))
Theorem:
(defthm vl-implicitsts-restore-fast-alists-of-vl-implicitst-fix-st (equal (vl-implicitsts-restore-fast-alists (vl-implicitst-fix st) new-st) (vl-implicitsts-restore-fast-alists st new-st)))
Theorem:
(defthm vl-implicitsts-restore-fast-alists-vl-implicitst-equiv-congruence-on-st (implies (vl-implicitst-equiv st st-equiv) (equal (vl-implicitsts-restore-fast-alists st new-st) (vl-implicitsts-restore-fast-alists st-equiv new-st))) :rule-classes :congruence)
Theorem:
(defthm vl-implicitsts-restore-fast-alists-of-vl-implicitst-fix-new-st (equal (vl-implicitsts-restore-fast-alists st (vl-implicitst-fix new-st)) (vl-implicitsts-restore-fast-alists st new-st)))
Theorem:
(defthm vl-implicitsts-restore-fast-alists-vl-implicitst-equiv-congruence-on-new-st (implies (vl-implicitst-equiv new-st new-st-equiv) (equal (vl-implicitsts-restore-fast-alists st new-st) (vl-implicitsts-restore-fast-alists st new-st-equiv))) :rule-classes :congruence)