Lemmas about pairlis$ available in the std/alists library.
Theorem:
(defthm pairlis$-when-atom (implies (atom x) (equal (pairlis$ x y) nil)))
Theorem:
(defthm pairlis$-of-cons (equal (pairlis$ (cons a x) y) (cons (cons a (car y)) (pairlis$ x (cdr y)))))
Theorem:
(defthm len-of-pairlis$ (equal (len (pairlis$ x y)) (len x)))
Theorem:
(defthm alistp-of-pairlis$ (alistp (pairlis$ x y)))
Theorem:
(defthm strip-cars-of-pairlis$ (equal (strip-cars (pairlis$ x y)) (list-fix x)))
Theorem:
(defthm strip-cdrs-of-pairlis$ (equal (strip-cdrs (pairlis$ x y)) (take (len x) y)))
Theorem:
(defthm pairlis$-of-list-fix-left (equal (pairlis$ (list-fix x) y) (pairlis$ x y)))
Theorem:
(defthm pairlis$-of-list-fix-right (equal (pairlis$ x (list-fix y)) (pairlis$ x y)))
Theorem:
(defthm list-equiv-implies-equal-pairlis$-1 (implies (list-equiv x x-equiv) (equal (pairlis$ x y) (pairlis$ x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm list-equiv-implies-equal-pairlis$-2 (implies (list-equiv y y-equiv) (equal (pairlis$ x y) (pairlis$ x y-equiv))) :rule-classes (:congruence))