(vl-elabindex-undo &key (elabindex 'elabindex)) → new-elabindex
Function:
(defun vl-elabindex-undo-fn (elabindex) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard t)) (let ((__function__ 'vl-elabindex-undo)) (declare (ignorable __function__)) (b* ((undostack (vl-elabindex->undostack elabindex)) ((unless (consp undostack)) (raise "Empty undostack") (vl-elabindex-update-undostack nil elabindex)) ((cons undo ss) (car undostack)) ((mv scopes &) (vl-elabscopes-traverse/update undo (vl-elabindex->scopes elabindex))) (elabindex (vl-elabindex-update-scopes scopes elabindex)) (elabindex (vl-elabindex-update-undostack (cdr undostack) elabindex))) (vl-elabindex-update-ss ss elabindex))))
Theorem:
(defthm undostack-of-vl-elabindex-undo (equal (vl-elabindex->undostack (vl-elabindex-undo)) (cdr (vl-elabindex->undostack))))