Basic congruence rules relating set-equiv to list functions.
Theorem:
(defthm set-equiv-implies-iff-member-2 (implies (set-equiv y y-equiv) (iff (member x y) (member x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-subsetp-2 (implies (set-equiv y y-equiv) (equal (subsetp x y) (subsetp x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-subsetp-1 (implies (set-equiv x x-equiv) (equal (subsetp x y) (subsetp x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm element-list-p-set-equiv-congruence (implies (and (element-list-final-cdr-p t) (set-equiv x y)) (equal (equal (element-list-p x) (element-list-p y)) t)) :rule-classes :rewrite)
Theorem:
(defthm set-equiv-implies-equal-intersection-equal-2 (implies (set-equiv y y-equiv) (equal (intersection-equal x y) (intersection-equal x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-set-equiv-intersection-equal-1 (implies (set-equiv x x-equiv) (set-equiv (intersection-equal x y) (intersection-equal x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-set-difference-equal-2 (implies (set-equiv y y-equiv) (equal (set-difference-equal x y) (set-difference-equal x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-set-equiv-set-difference-equal-1 (implies (set-equiv x x-equiv) (set-equiv (set-difference-equal x y) (set-difference-equal x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-consp-1 (implies (set-equiv x x-equiv) (equal (consp x) (consp x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-atom-1 (implies (set-equiv x x-equiv) (equal (atom x) (atom x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-intersectp-1 (implies (set-equiv x x-equiv) (equal (intersectp x y) (intersectp x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-intersectp-2 (implies (set-equiv y y-equiv) (equal (intersectp x y) (intersectp x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-set-equiv-append-2 (implies (set-equiv y y-equiv) (set-equiv (append x y) (append x y-equiv))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-set-equiv-append-1 (implies (set-equiv x x-equiv) (set-equiv (append x y) (append x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm set-equiv-implies-equal-len-remove-duplicates-equal (implies (set-equiv x y) (equal (len (remove-duplicates-equal x)) (len (remove-duplicates-equal y)))) :rule-classes :congruence)