(aliases-finish-canonicalize n aliases) → aliases1
Function:
(defun aliases-finish-canonicalize (n aliases) (declare (xargs :stobjs (aliases))) (declare (xargs :guard (and (natp n) (aliases-normorderedp aliases)))) (declare (xargs :guard (<= n (aliass-length aliases)))) (let ((__function__ 'aliases-finish-canonicalize)) (declare (ignorable __function__)) (b* (((when (mbe :logic (zp (- (aliass-length aliases) (nfix n))) :exec (eql (aliass-length aliases) n))) (aliases-bound-fix aliases)) (lhs (getalias n aliases)) (canon (lhs-alias-canonicalize lhs n (lhs-width lhs) 0 aliases)) (aliases (setalias n canon aliases))) (aliases-finish-canonicalize (1+ (lnfix n)) aliases))))
Theorem:
(defthm aliases-normorderedp-of-aliases-finish-canonicalize (b* ((aliases1 (aliases-finish-canonicalize n aliases))) (aliases-normorderedp aliases1)) :rule-classes :rewrite)
Theorem:
(defthm aliases-finish-canonicalize-of-nfix-n (equal (aliases-finish-canonicalize (nfix n) aliases) (aliases-finish-canonicalize n aliases)))
Theorem:
(defthm aliases-finish-canonicalize-nat-equiv-congruence-on-n (implies (nat-equiv n n-equiv) (equal (aliases-finish-canonicalize n aliases) (aliases-finish-canonicalize n-equiv aliases))) :rule-classes :congruence)
Theorem:
(defthm aliases-finish-canonicalize-of-aliases-bound-fix-aliases (equal (aliases-finish-canonicalize n (aliases-bound-fix aliases)) (aliases-finish-canonicalize n aliases)))
Theorem:
(defthm aliases-finish-canonicalize-aliases-equiv-congruence-on-aliases (implies (aliases-equiv aliases aliases-equiv) (equal (aliases-finish-canonicalize n aliases) (aliases-finish-canonicalize n aliases-equiv))) :rule-classes :congruence)
Theorem:
(defthm len-of-aliases-finish-canonicalize (equal (len (aliases-finish-canonicalize n aliases)) (len aliases)))