(aliases-indexed->named-aux n aliases scope moddb indnamememo) → (mv aliases1 indnamememo1)
Function:
(defun aliases-indexed->named-aux (n aliases scope moddb indnamememo) (declare (xargs :stobjs (aliases moddb indnamememo))) (declare (xargs :guard (and (natp n) (modscope-p scope) (moddb-ok moddb)))) (declare (xargs :guard (and (<= (lnfix n) (aliass-length aliases)) (modscope-okp scope moddb) (aliases-boundedp-aux n aliases (modscope-local-bound scope moddb))))) (let ((__function__ 'aliases-indexed->named-aux)) (declare (ignorable __function__)) (b* ((aliases (aliases-fix aliases)) ((when (mbe :logic (zp (- (aliass-length aliases) (nfix n))) :exec (eql (aliass-length aliases) n))) (mv aliases indnamememo)) (lhs (get-alias n aliases)) ((mv lhs1 indnamememo) (lhs-indexed->named lhs scope moddb indnamememo)) (aliases (set-alias n lhs1 aliases))) (aliases-indexed->named-aux (1+ (lnfix n)) aliases scope moddb indnamememo))))
Theorem:
(defthm return-type-of-aliases-indexed->named-aux.aliases1 (b* (((mv ?aliases1 ?indnamememo1) (aliases-indexed->named-aux n aliases scope moddb indnamememo))) (equal (len aliases1) (len aliases))) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-aliases-indexed->named-aux.indnamememo1 (b* (((mv ?aliases1 ?indnamememo1) (aliases-indexed->named-aux n aliases scope moddb indnamememo))) (equal (len indnamememo1) (len indnamememo))) :rule-classes :rewrite)
Theorem:
(defthm aliases-indexed->named-preserves-lesser-indices (implies (< (nfix m) (nfix n)) (equal (nth m (mv-nth 0 (aliases-indexed->named-aux n aliases scope moddb indnamememo))) (lhs-fix (nth m aliases)))))
Theorem:
(defthm vars-of-aliases-indexed->named-aux (implies (and (<= (nfix n) (nfix m)) (< (nfix m) (len aliases))) (svarlist-addr-p (lhs-vars (nth m (mv-nth 0 (aliases-indexed->named-aux n aliases scope moddb indnamememo)))))))
Theorem:
(defthm aliases-indexed->named-aux-of-nfix-n (equal (aliases-indexed->named-aux (nfix n) aliases scope moddb indnamememo) (aliases-indexed->named-aux n aliases scope moddb indnamememo)))
Theorem:
(defthm aliases-indexed->named-aux-nat-equiv-congruence-on-n (implies (nat-equiv n n-equiv) (equal (aliases-indexed->named-aux n aliases scope moddb indnamememo) (aliases-indexed->named-aux n-equiv aliases scope moddb indnamememo))) :rule-classes :congruence)
Theorem:
(defthm aliases-indexed->named-aux-of-lhslist-fix-aliases (equal (aliases-indexed->named-aux n (lhslist-fix aliases) scope moddb indnamememo) (aliases-indexed->named-aux n aliases scope moddb indnamememo)))
Theorem:
(defthm aliases-indexed->named-aux-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (aliases-indexed->named-aux n aliases scope moddb indnamememo) (aliases-indexed->named-aux n aliases-equiv scope moddb indnamememo))) :rule-classes :congruence)
Theorem:
(defthm aliases-indexed->named-aux-of-modscope-fix-scope (equal (aliases-indexed->named-aux n aliases (modscope-fix scope) moddb indnamememo) (aliases-indexed->named-aux n aliases scope moddb indnamememo)))
Theorem:
(defthm aliases-indexed->named-aux-modscope-equiv-congruence-on-scope (implies (modscope-equiv scope scope-equiv) (equal (aliases-indexed->named-aux n aliases scope moddb indnamememo) (aliases-indexed->named-aux n aliases scope-equiv moddb indnamememo))) :rule-classes :congruence)
Theorem:
(defthm aliases-indexed->named-aux-of-moddb-fix-moddb (equal (aliases-indexed->named-aux n aliases scope (moddb-fix moddb) indnamememo) (aliases-indexed->named-aux n aliases scope moddb indnamememo)))
Theorem:
(defthm aliases-indexed->named-aux-moddb-equiv-congruence-on-moddb (implies (moddb-equiv moddb moddb-equiv) (equal (aliases-indexed->named-aux n aliases scope moddb indnamememo) (aliases-indexed->named-aux n aliases scope moddb-equiv indnamememo))) :rule-classes :congruence)