(canonicalize-alias-pairs pairs aliases) → aliases
Function:
(defun canonicalize-alias-pairs (pairs aliases) (declare (xargs :stobjs (aliases))) (declare (xargs :guard (and (lhspairs-p pairs) (aliases-normorderedp aliases)))) (declare (xargs :guard (svarlist-boundedp (lhspairs-vars pairs) (aliass-length aliases)))) (let ((__function__ 'canonicalize-alias-pairs)) (declare (ignorable __function__)) (b* ((aliases (aliases-put-pairs pairs aliases))) (aliases-finish-canonicalize 0 aliases))))
Theorem:
(defthm aliases-normorderedp-of-canonicalize-alias-pairs (b* ((aliases (canonicalize-alias-pairs pairs aliases))) (aliases-normorderedp aliases)) :rule-classes :rewrite)
Theorem:
(defthm canonicalize-alias-pairs-of-lhspairs-fix-pairs (equal (canonicalize-alias-pairs (lhspairs-fix pairs) aliases) (canonicalize-alias-pairs pairs aliases)))
Theorem:
(defthm canonicalize-alias-pairs-lhspairs-equiv-congruence-on-pairs (implies (lhspairs-equiv pairs pairs-equiv) (equal (canonicalize-alias-pairs pairs aliases) (canonicalize-alias-pairs pairs-equiv aliases))) :rule-classes :congruence)
Theorem:
(defthm canonicalize-alias-pairs-of-aliases-bound-fix-aliases (equal (canonicalize-alias-pairs pairs (aliases-bound-fix aliases)) (canonicalize-alias-pairs pairs aliases)))
Theorem:
(defthm canonicalize-alias-pairs-aliases-equiv-congruence-on-aliases (implies (aliases-equiv aliases aliases-equiv) (equal (canonicalize-alias-pairs pairs aliases) (canonicalize-alias-pairs pairs aliases-equiv))) :rule-classes :congruence)
Theorem:
(defthm len-of-canonicalize-alias-pairs (implies (svarlist-boundedp (lhspairs-vars pairs) (len aliases)) (equal (len (canonicalize-alias-pairs pairs aliases)) (len aliases))))