Function:
(defun aliases-bound-fix-aux (n aliases) (declare (xargs :stobjs (aliases))) (declare (xargs :guard (natp n))) (declare (xargs :guard (and (<= n (aliass-length aliases)) (aliases-normorderedp-aux n aliases)))) (let ((__function__ 'aliases-bound-fix-aux)) (declare (ignorable __function__)) (if (zp n) (aliases-fix aliases) (let ((aliases (aliases-bound-fix-aux (1- n) aliases))) (set-alias (1- n) (lhs-varbound-fix (1- n) 0 (get-alias (1- n) aliases)) aliases)))))
Theorem:
(defthm lhslist-p-of-aliases-bound-fix-aux (b* ((aliases1 (aliases-bound-fix-aux n aliases))) (lhslist-p aliases1)) :rule-classes :rewrite)
Theorem:
(defthm len-of-aliases-bound-fix-aux (implies (<= n (len aliases)) (equal (len (aliases-bound-fix-aux n aliases)) (len aliases))))
Theorem:
(defthm nth-of-aliases-bound-fix-aux (equal (nth m (aliases-bound-fix-aux n aliases)) (if (< (nfix m) (nfix n)) (lhs-varbound-fix (nfix m) 0 (nth m aliases)) (lhs-fix (nth m aliases)))))
Theorem:
(defthm aliases-normorderedp-aux-of-aliases-bound-fix-aux (aliases-normorderedp-aux n (aliases-bound-fix-aux n aliases)))
Theorem:
(defthm aliases-bound-fix-aux-when-aliases-normorderedp-aux (implies (and (aliases-normorderedp-aux n aliases) (<= (nfix n) (len aliases))) (equal (aliases-bound-fix-aux n aliases) (lhslist-fix aliases))))
Theorem:
(defthm aliases-bound-fix-aux-of-nfix-n (equal (aliases-bound-fix-aux (nfix n) aliases) (aliases-bound-fix-aux n aliases)))
Theorem:
(defthm aliases-bound-fix-aux-nat-equiv-congruence-on-n (implies (nat-equiv n n-equiv) (equal (aliases-bound-fix-aux n aliases) (aliases-bound-fix-aux n-equiv aliases))) :rule-classes :congruence)
Theorem:
(defthm aliases-bound-fix-aux-of-lhslist-fix-aliases (equal (aliases-bound-fix-aux n (lhslist-fix aliases)) (aliases-bound-fix-aux n aliases)))
Theorem:
(defthm aliases-bound-fix-aux-lhslist-equiv-congruence-on-aliases (implies (lhslist-equiv aliases aliases-equiv) (equal (aliases-bound-fix-aux n aliases) (aliases-bound-fix-aux n aliases-equiv))) :rule-classes :congruence)