(vl-elabindex-traverse-undo-entry path &key (elabindex 'elabindex)) → undo-entry
Function:
(defun vl-elabindex-traverse-undo-entry-fn (path elabindex) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (vl-elabtraversal-p path))) (let ((__function__ 'vl-elabindex-traverse-undo-entry)) (declare (ignorable __function__)) (b* (((mv ?scopes rev-undo) (vl-elabscopes-traverse/update path (vl-elabindex->scopes elabindex)))) (cons (rev rev-undo) (vl-elabindex->ss)))))
Theorem:
(defthm return-type-of-vl-elabindex-traverse-undo-entry (b* ((undo-entry (vl-elabindex-traverse-undo-entry-fn path elabindex))) (and (vl-elabtraversal-p (car undo-entry)) (vl-scopestack-p (cdr undo-entry)))) :rule-classes :rewrite)
Theorem:
(defthm undostack-of-vl-elabindex-traverse (equal (vl-elabindex->undostack (vl-elabindex-traverse ss path)) (cons (vl-elabindex-traverse-undo-entry path) (vl-elabindex->undostack))))
Theorem:
(defthm vl-elabindex-traverse-undo-entry-fn-of-vl-elabtraversal-fix-path (equal (vl-elabindex-traverse-undo-entry-fn (vl-elabtraversal-fix path) elabindex) (vl-elabindex-traverse-undo-entry-fn path elabindex)))
Theorem:
(defthm vl-elabindex-traverse-undo-entry-fn-vl-elabtraversal-equiv-congruence-on-path (implies (vl-elabtraversal-equiv path path-equiv) (equal (vl-elabindex-traverse-undo-entry-fn path elabindex) (vl-elabindex-traverse-undo-entry-fn path-equiv elabindex))) :rule-classes :congruence)