Push a scope into the disambiguation table.
(dimb-push-scope table) → new-table
We add an empty scope. The top of the stack is on the left, so we push via cons. Also see dimb-pop-scope.
Function:
(defun dimb-push-scope (table) (declare (xargs :guard (dimb-tablep table))) (let ((__function__ 'dimb-push-scope)) (declare (ignorable __function__)) (cons nil (dimb-table-fix table))))
Theorem:
(defthm dimb-tablep-of-dimb-push-scope (b* ((new-table (dimb-push-scope table))) (dimb-tablep new-table)) :rule-classes :rewrite)
Theorem:
(defthm dimb-push-scope-of-dimb-table-fix-table (equal (dimb-push-scope (dimb-table-fix table)) (dimb-push-scope table)))
Theorem:
(defthm dimb-push-scope-dimb-table-equiv-congruence-on-table (implies (dimb-table-equiv table table-equiv) (equal (dimb-push-scope table) (dimb-push-scope table-equiv))) :rule-classes :congruence)