Lemmas about strip-cars available in the std/alists library.
Note that
Even so, we provide many lemmas for working with
Theorem:
(defthm strip-cars-when-atom (implies (atom x) (equal (strip-cars x) nil)))
Theorem:
(defthm strip-cars-of-cons (equal (strip-cars (cons a x)) (cons (car a) (strip-cars x))))
Theorem:
(defthm len-of-strip-cars (equal (len (strip-cars x)) (len x)))
Theorem:
(defthm consp-of-strip-cars (equal (consp (strip-cars x)) (consp x)))
Theorem:
(defthm car-of-strip-cars (equal (car (strip-cars x)) (car (car x))))
Theorem:
(defthm cdr-of-strip-cars (equal (cdr (strip-cars x)) (strip-cars (cdr x))))
Theorem:
(defthm strip-cars-under-iff (iff (strip-cars x) (consp x)))
Theorem:
(defthm strip-cars-of-list-fix (equal (strip-cars (list-fix x)) (strip-cars x)))
Theorem:
(defthm set-equiv-implies-set-equiv-strip-cars-1 (implies (set-equiv x x-equiv) (set-equiv (strip-cars x) (strip-cars x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm strip-cars-of-append (equal (strip-cars (append x y)) (append (strip-cars x) (strip-cars y))))
Theorem:
(defthm strip-cars-of-rev (equal (strip-cars (rev x)) (rev (strip-cars x))))
Theorem:
(defthm strip-cars-of-revappend (equal (strip-cars (revappend x y)) (revappend (strip-cars x) (strip-cars y))))
Theorem:
(defthm strip-cars-of-repeat (equal (strip-cars (repeat n x)) (repeat n (car x))))
Theorem:
(defthm strip-cars-of-take (equal (strip-cars (take n x)) (take n (strip-cars x))))
Theorem:
(defthm strip-cars-of-nthcdr (equal (strip-cars (nthcdr n x)) (nthcdr n (strip-cars x))))
Theorem:
(defthm strip-cars-of-last (equal (strip-cars (last x)) (last (strip-cars x))))
Theorem:
(defthm strip-cars-of-butlast (equal (strip-cars (butlast x n)) (butlast (strip-cars x) n)))
Theorem:
(defthm strip-cars-of-pairlis$ (equal (strip-cars (pairlis$ x y)) (list-fix x)))