(delay-svar->delays x) → delays
Function:
(defun delay-svar->delays (x) (declare (xargs :guard (svar-p x))) (let ((__function__ 'delay-svar->delays)) (declare (ignorable __function__)) (b* (((svar x) (svar-fix x)) ((when (eql 0 x.delay)) nil) (next-x (change-svar x :delay (1- x.delay))) (pair (cons x next-x))) (cons pair (delay-svar->delays next-x)))))
Theorem:
(defthm svar-map-p-of-delay-svar->delays (b* ((delays (delay-svar->delays x))) (svar-map-p delays)) :rule-classes :rewrite)
Theorem:
(defthm vars-of-delay-svar->delays (b* ((?delays (delay-svar->delays x))) (implies (svar-addr-p x) (svarlist-addr-p (svar-map-vars delays)))))
Theorem:
(defthm vars-of-delay-svar->delays-keys (b* ((?delays (delay-svar->delays x))) (implies (svar-addr-p x) (svarlist-addr-p (alist-keys delays)))))
Theorem:
(defthm vars-of-delay-svar->delays-vals (b* ((?delays (delay-svar->delays x))) (implies (svar-addr-p x) (svarlist-addr-p (alist-vals delays)))))
Theorem:
(defthm delay-svar->delays-of-svar-fix-x (equal (delay-svar->delays (svar-fix x)) (delay-svar->delays x)))
Theorem:
(defthm delay-svar->delays-svar-equiv-congruence-on-x (implies (svar-equiv x x-equiv) (equal (delay-svar->delays x) (delay-svar->delays x-equiv))) :rule-classes :congruence)