Как пишут предикаты поясню на примере:
p1(a,b) :- a=b.
Здесь возможны варианты
1) a неопределенно, b - определено, тогда a примет значение b, предикат p1 примет значение истина.
2) a и b определены, тогда результатом p1 будет сравнение a и b.
3) a определено, b - неопределено или a и b неопределены, тогда будет fail и откат.