Pop information about the top call off the call stack of a dynamic environment.
(pop-call-dinfo env) → new-env
Function:
(defun pop-call-dinfo (env) (declare (xargs :guard (denvp env))) (let ((__function__ 'pop-call-dinfo)) (declare (ignorable __function__)) (b* ((calls (denv->call-stack env)) ((when (endp calls)) (reserrf :empty-call-stack)) (new-calls (cdr calls)) (new-env (change-denv env :call-stack new-calls))) new-env)))
Theorem:
(defthm denv-resultp-of-pop-call-dinfo (b* ((new-env (pop-call-dinfo env))) (denv-resultp new-env)) :rule-classes :rewrite)
Theorem:
(defthm pop-call-dinfo-of-denv-fix-env (equal (pop-call-dinfo (denv-fix env)) (pop-call-dinfo env)))
Theorem:
(defthm pop-call-dinfo-denv-equiv-congruence-on-env (implies (denv-equiv env env-equiv) (equal (pop-call-dinfo env) (pop-call-dinfo env-equiv))) :rule-classes :congruence)