(svar-indexed->named var scope moddb) → newvar
Function:
(defun svar-indexed->named (var scope moddb) (declare (xargs :stobjs (moddb))) (declare (xargs :guard (and (svar-p var) (modscope-p scope) (moddb-ok moddb)))) (declare (xargs :guard (and (modscope-okp scope moddb) (svar-boundedp var (modscope-local-bound scope moddb))))) (let ((__function__ 'svar-indexed->named)) (declare (ignorable __function__)) (b* ((idx (svar-index var)) (name (moddb-wireidx->path idx (modscope->modidx scope) moddb)) (addr (make-address :path name))) (address->svar addr))))
Theorem:
(defthm return-type-of-svar-indexed->named (b* ((newvar (svar-indexed->named var scope moddb))) (and (svar-p newvar) (svar-addr-p newvar))) :rule-classes :rewrite)
Theorem:
(defthm svar-indexed->named-of-svar-fix-var (equal (svar-indexed->named (svar-fix var) scope moddb) (svar-indexed->named var scope moddb)))
Theorem:
(defthm svar-indexed->named-svar-equiv-congruence-on-var (implies (svar-equiv var var-equiv) (equal (svar-indexed->named var scope moddb) (svar-indexed->named var-equiv scope moddb))) :rule-classes :congruence)
Theorem:
(defthm svar-indexed->named-of-modscope-fix-scope (equal (svar-indexed->named var (modscope-fix scope) moddb) (svar-indexed->named var scope moddb)))
Theorem:
(defthm svar-indexed->named-modscope-equiv-congruence-on-scope (implies (modscope-equiv scope scope-equiv) (equal (svar-indexed->named var scope moddb) (svar-indexed->named var scope-equiv moddb))) :rule-classes :congruence)
Theorem:
(defthm svar-indexed->named-of-moddb-fix-moddb (equal (svar-indexed->named var scope (moddb-fix moddb)) (svar-indexed->named var scope moddb)))
Theorem:
(defthm svar-indexed->named-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (svar-indexed->named var scope moddb) (svar-indexed->named var scope moddb-equiv))) :rule-classes :congruence)