(aliases-indexed->named aliases scope moddb) → (mv new-aliases varmap)
Function:
(defun aliases-indexed->named (aliases scope moddb) (declare (xargs :stobjs (aliases moddb))) (declare (xargs :guard (and (modscope-p scope) (moddb-ok moddb)))) (declare (xargs :guard (and (modscope-okp scope moddb) (<= (aliass-length aliases) (modscope-local-bound scope moddb)) (aliases-normorderedp aliases)))) (let ((__function__ 'aliases-indexed->named)) (declare (ignorable __function__)) (b* (((acl2::local-stobjs indnamememo) (mv aliases varmap indnamememo)) (indnamememo (resize-indnames (aliass-length aliases) indnamememo)) ((mv aliases indnamememo) (aliases-indexed->named-aux 0 aliases scope moddb indnamememo)) (varmap (indnamememo-to-var-decl-map 0 indnamememo nil))) (mv aliases varmap indnamememo))))
Theorem:
(defthm return-type-of-aliases-indexed->named.new-aliases (b* (((mv ?new-aliases ?varmap) (aliases-indexed->named aliases scope moddb))) (equal (len new-aliases) (len aliases))) :rule-classes :rewrite)
Theorem:
(defthm var-decl-map-p-of-aliases-indexed->named.varmap (b* (((mv ?new-aliases ?varmap) (aliases-indexed->named aliases scope moddb))) (var-decl-map-p varmap)) :rule-classes :rewrite)
Theorem:
(defthm vars-of-aliases-indexed->named (b* (((mv ?new-aliases ?varmap) (aliases-indexed->named aliases scope moddb))) (implies (< (nfix m) (len aliases)) (svarlist-addr-p (lhs-vars (nth m new-aliases))))))
Theorem:
(defthm aliases-vars-of-aliases-indexed->named (b* (((mv ?new-aliases ?varmap) (aliases-indexed->named aliases scope moddb))) (svarlist-addr-p (aliases-vars new-aliases))))
Theorem:
(defthm aliases-indexed->named-of-lhslist-fix-aliases (equal (aliases-indexed->named (lhslist-fix aliases) scope moddb) (aliases-indexed->named aliases scope moddb)))
Theorem:
(defthm aliases-indexed->named-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (aliases-indexed->named aliases scope moddb) (aliases-indexed->named aliases-equiv scope moddb))) :rule-classes :congruence)
Theorem:
(defthm aliases-indexed->named-of-modscope-fix-scope (equal (aliases-indexed->named aliases (modscope-fix scope) moddb) (aliases-indexed->named aliases scope moddb)))
Theorem:
(defthm aliases-indexed->named-modscope-equiv-congruence-on-scope (implies (modscope-equiv scope scope-equiv) (equal (aliases-indexed->named aliases scope moddb) (aliases-indexed->named aliases scope-equiv moddb))) :rule-classes :congruence)
Theorem:
(defthm aliases-indexed->named-of-moddb-fix-moddb (equal (aliases-indexed->named aliases scope (moddb-fix moddb)) (aliases-indexed->named aliases scope moddb)))
Theorem:
(defthm aliases-indexed->named-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (aliases-indexed->named aliases scope moddb) (aliases-indexed->named aliases scope moddb-equiv))) :rule-classes :congruence)