(aliases-add-pair x y aliases) → aliases1
Function:
(defun aliases-add-pair (x y aliases) (declare (xargs :stobjs (aliases))) (declare (xargs :guard (and (lhs-p x) (lhs-p y) (aliases-normorderedp aliases)))) (declare (xargs :guard (and (svarlist-boundedp (lhs-vars x) (aliass-length aliases)) (svarlist-boundedp (lhs-vars y) (aliass-length aliases))))) (let ((__function__ 'aliases-add-pair)) (declare (ignorable __function__)) (b* (((when (zp (aliass-length aliases))) (aliases-bound-fix aliases)) (xcanon (lhs-alias-canonicalize-top x aliases)) (ycanon (lhs-alias-canonicalize-top y aliases)) (aliases (lhs-pairs-set-aliases xcanon ycanon aliases)) ((mv & aliases) (lhs-alias-canonicalize-replace-top x aliases)) ((mv & aliases) (lhs-alias-canonicalize-replace-top y aliases))) aliases)))
Theorem:
(defthm aliases-normorderedp-of-aliases-add-pair (b* ((aliases1 (aliases-add-pair x y aliases))) (aliases-normorderedp aliases1)) :rule-classes :rewrite)
Theorem:
(defthm aliases-add-pair-of-lhs-fix-x (equal (aliases-add-pair (lhs-fix x) y aliases) (aliases-add-pair x y aliases)))
Theorem:
(defthm aliases-add-pair-lhs-equiv-congruence-on-x (implies (lhs-equiv x x-equiv) (equal (aliases-add-pair x y aliases) (aliases-add-pair x-equiv y aliases))) :rule-classes :congruence)
Theorem:
(defthm aliases-add-pair-of-lhs-fix-y (equal (aliases-add-pair x (lhs-fix y) aliases) (aliases-add-pair x y aliases)))
Theorem:
(defthm aliases-add-pair-lhs-equiv-congruence-on-y (implies (lhs-equiv y y-equiv) (equal (aliases-add-pair x y aliases) (aliases-add-pair x y-equiv aliases))) :rule-classes :congruence)
Theorem:
(defthm aliases-add-pair-of-aliases-bound-fix-aliases (equal (aliases-add-pair x y (aliases-bound-fix aliases)) (aliases-add-pair x y aliases)))
Theorem:
(defthm aliases-add-pair-aliases-equiv-congruence-on-aliases (implies (aliases-equiv aliases aliases-equiv) (equal (aliases-add-pair x y aliases) (aliases-add-pair x y aliases-equiv))) :rule-classes :congruence)
Theorem:
(defthm len-of-aliases-add-pair (implies (and (svarlist-boundedp (lhs-vars x) (len aliases)) (svarlist-boundedp (lhs-vars y) (len aliases))) (equal (len (aliases-add-pair x y aliases)) (len aliases))))