Есть ли в лиспе такая функция, которая позволяет объединять два множества, образовывая новое, которое представляет собой отношение поглощения двух предыдущих?
Например,
(defvar p1 (list (list 1 2)
(list 3)
(list 4 5)
(list 6)
(list 7))
(defvar p2 (list (list 1)
(list 2 3 4)
(list 5)
(list 6)
(list 7)))
(defvar p-after-merging-p1-and-p2 (list
(list 1 2 3 4 5)
(list 6)
(list 7)))
Эта задача из теории конечных автоматов на нахождение нетривиальных конгруэнций.
В лиспе есть функция merge, но я не понял, какой предикат туда надо вставить, чтобы добиться моего результата.