(disjoint-p x y) → *
Function:
(defun disjoint-p (x y) (declare (xargs :guard (and (true-listp x) (true-listp y)))) (let ((__function__ 'disjoint-p)) (declare (ignorable __function__)) (if (atom x) t (if (member-p (car x) y) nil (disjoint-p (cdr x) y)))))
Theorem:
(defthm disjoint-p-x-x (implies (consp x) (equal (disjoint-p x x) nil)))
Theorem:
(defthm disjoint-p-nil-1 (equal (disjoint-p nil y) t))
Theorem:
(defthm disjoint-p-nil-2 (equal (disjoint-p x nil) t))
Theorem:
(defthm disjoint-p-cdr-1 (implies (disjoint-p x y) (disjoint-p (cdr x) y)) :rule-classes ((:rewrite :backchain-limit-lst (0))))
Theorem:
(defthm disjoint-p-cdr-2 (implies (disjoint-p x y) (disjoint-p x (cdr y))) :rule-classes ((:rewrite :backchain-limit-lst (0))))
Theorem:
(defthm disjoint-p-cons-1 (equal (disjoint-p (cons e x) a) (and (disjoint-p x a) (equal (member-p e a) nil))))
Theorem:
(defthm disjoint-p-cons-2 (equal (disjoint-p a (cons e x)) (and (disjoint-p a x) (equal (member-p e a) nil))))
Theorem:
(defthm disjoint-p-commutative (equal (disjoint-p a b) (disjoint-p b a)) :rule-classes ((:rewrite :loop-stopper ((a b)))))
Theorem:
(defthm member-p-when-not-disjoint-p (implies (and (member-p e x) (member-p e y)) (equal (disjoint-p x y) nil)))
Theorem:
(defthm not-member-p-when-disjoint-p (implies (and (disjoint-p x y) (member-p e x)) (equal (member-p e y) nil)))
Theorem:
(defthm disjoint-p-append-1 (implies (true-listp a) (equal (disjoint-p (append a b) c) (and (disjoint-p a c) (disjoint-p b c)))))
Theorem:
(defthm disjoint-p-append-2 (implies (true-listp b) (equal (disjoint-p a (append b c)) (and (disjoint-p a b) (disjoint-p a c)))))