(vl-elabindex-update-item-info name val &key (elabindex 'elabindex)) → new-elabindex
Function:
(defun vl-elabindex-update-item-info-fn (name val elabindex) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (stringp name) (vl-scopeitem-p val)))) (let ((__function__ 'vl-elabindex-update-item-info)) (declare (ignorable __function__)) (b* ((scopes (vl-elabindex->scopes elabindex)) ((when (atom scopes)) (raise "No scope -- can't update item info!~%") elabindex) ((cons (cons scope1key scope1) rest) scopes) (scope1 (vl-elabscope-update-item-info name val scope1))) (vl-elabindex-update-scopes (cons (cons scope1key scope1) rest) elabindex))))
Theorem:
(defthm undostack-preserved-of-vl-elabindex-update-item-info (equal (vl-elabindex->undostack (vl-elabindex-update-item-info name val)) (vl-elabindex->undostack)))
Theorem:
(defthm vl-elabindex-update-item-info-fn-of-str-fix-name (equal (vl-elabindex-update-item-info-fn (str-fix name) val elabindex) (vl-elabindex-update-item-info-fn name val elabindex)))
Theorem:
(defthm vl-elabindex-update-item-info-fn-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-elabindex-update-item-info-fn name val elabindex) (vl-elabindex-update-item-info-fn name-equiv val elabindex))) :rule-classes :congruence)
Theorem:
(defthm vl-elabindex-update-item-info-fn-of-vl-scopeitem-fix-val (equal (vl-elabindex-update-item-info-fn name (vl-scopeitem-fix val) elabindex) (vl-elabindex-update-item-info-fn name val elabindex)))
Theorem:
(defthm vl-elabindex-update-item-info-fn-vl-scopeitem-equiv-congruence-on-val (implies (vl-scopeitem-equiv val val-equiv) (equal (vl-elabindex-update-item-info-fn name val elabindex) (vl-elabindex-update-item-info-fn name val-equiv elabindex))) :rule-classes :congruence)