(intersectp x y) checks whether
Logically we just check whether the intersect of
In the execution, we use a faster function that checks for any common members and doesn't build any new sets.
Function:
(defun intersectp (x y) (declare (xargs :guard (and (setp x) (setp y)))) (mbe :logic (not (emptyp (intersect x y))) :exec (fast-intersectp x y)))