(vl-elabscope-update-item-info name val x) → new-x
Function:
(defun vl-elabscope-update-item-info (name val x) (declare (xargs :guard (and (stringp name) (vl-scopeitem-p val) (vl-elabscope-p x)))) (let ((__function__ 'vl-elabscope-update-item-info)) (declare (ignorable __function__)) (change-vl-elabscope x :members (hons-acons (string-fix name) (vl-scopeitem-fix val) (vl-elabscope->members x)))))
Theorem:
(defthm vl-elabscope-p-of-vl-elabscope-update-item-info (b* ((new-x (vl-elabscope-update-item-info name val x))) (vl-elabscope-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-elabscope-update-item-info-of-str-fix-name (equal (vl-elabscope-update-item-info (str-fix name) val x) (vl-elabscope-update-item-info name val x)))
Theorem:
(defthm vl-elabscope-update-item-info-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-elabscope-update-item-info name val x) (vl-elabscope-update-item-info name-equiv val x))) :rule-classes :congruence)
Theorem:
(defthm vl-elabscope-update-item-info-of-vl-scopeitem-fix-val (equal (vl-elabscope-update-item-info name (vl-scopeitem-fix val) x) (vl-elabscope-update-item-info name val x)))
Theorem:
(defthm vl-elabscope-update-item-info-vl-scopeitem-equiv-congruence-on-val (implies (vl-scopeitem-equiv val val-equiv) (equal (vl-elabscope-update-item-info name val x) (vl-elabscope-update-item-info name val-equiv x))) :rule-classes :congruence)
Theorem:
(defthm vl-elabscope-update-item-info-of-vl-elabscope-fix-x (equal (vl-elabscope-update-item-info name val (vl-elabscope-fix x)) (vl-elabscope-update-item-info name val x)))
Theorem:
(defthm vl-elabscope-update-item-info-vl-elabscope-equiv-congruence-on-x (implies (vl-elabscope-equiv x x-equiv) (equal (vl-elabscope-update-item-info name val x) (vl-elabscope-update-item-info name val x-equiv))) :rule-classes :congruence)