Причина результата yes
состоит в том, что R, то есть множество, состоящее только из a и b, фактически является множеством всех X, которые удовлетворяют предикату p (x).
Если вы добавите элементы в R или удалите из него a или b, результат будет no
.
p (a) и p (b) имеют значение true, поскольку предикаты assert добавили эти предложения в базу данных.
Точно так же, сохраняя R = [a, b]
, если вы добавите еще одно предложение, скажем, assert(p(c))
, результат будет no
(поскольку R будет отсутствовать c, чтобы иметь все X, которые удовлетворяют p (X)).