(svar-set-index x idx) → xx
Function:
(defun svar-set-index (x idx) (declare (xargs :guard (and (svar-p x) (natp idx)))) (let ((__function__ 'svar-set-index)) (declare (ignorable __function__)) (change-svar x :name (lnfix idx))))
Theorem:
(defthm return-type-of-svar-set-index (b* ((xx (svar-set-index x idx))) (and (svar-p xx) (svar-indexedp xx))) :rule-classes :rewrite)
Theorem:
(defthm svar-index-of-svar-set-index (equal (svar-index (svar-set-index x idx)) (nfix idx)))
Theorem:
(defthm svar-set-index-of-svar-fix-x (equal (svar-set-index (svar-fix x) idx) (svar-set-index x idx)))
Theorem:
(defthm svar-set-index-svar-equiv-congruence-on-x (implies (svar-equiv x x-equiv) (equal (svar-set-index x idx) (svar-set-index x-equiv idx))) :rule-classes :congruence)
Theorem:
(defthm svar-set-index-of-nfix-idx (equal (svar-set-index x (nfix idx)) (svar-set-index x idx)))
Theorem:
(defthm svar-set-index-nat-equiv-congruence-on-idx (implies (nat-equiv idx idx-equiv) (equal (svar-set-index x idx) (svar-set-index x idx-equiv))) :rule-classes :congruence)