Встроенные предикаты, осуществляющие сравнение термов, также имеют две формы записи, однако в программах на языке Пролог чаще используется более привычная - инфиксная. Этими предикатами являются: равно (=), не равно (\=), больше (>), меньше (<), больше-равно (>=), меньше-равно (=<). Четыре последние могут быть использованы для сравнения только чисел или переменных, конкретизированных числами. Два первых годятся для сравнения любых термов. Ниже даются примеры использования этих предикатов в запросах.
?- 4 > 2.           Yes
?- abc = 'abc'.     Yes
?- cad \= cam.      Yes
?- x = X.           X = x
?- Y = cat.         Y = cat
?- X = Y.           Yes
Примеры с предикатом равно иллюстрируют важное его свойство - конкретизацию переменной, являющейся одним из его аргументов, значением другого аргумента, что дает положительный результат проверка. Ответом на запрос X = Y будет Yes, поскольку предикат "равно" в случае, когда оба его аргумента являются неконкретизированными переменными, связывает их, делая синонимами, указывающими на одно и то же значение (пока неопределённое).
Важно чётко представлять себе работу предиката "равно". При согласовании с базой данных цели вида X=Y действуют следующие правила.
Пример 1
Сопоставление двух структур.
?- a(B,c,D,e(f,H)) = a(b,C,x(y,z),e(F,h)).
      B=b, C=c, D=x(y,z), F=f, H=h
Расширенной версией предиката "=" является встроенный предикат "is". Дело в том, что перед собственно сравнением двух своих аргументов этот предикат осуществляет вычисление своего правого аргумента (при условии, конечно, что этот аргумент можно интерпретировать как арифметическое выражение).
Пример 2
Использование предикатов "=" и "is".
?- X = +(2,2).        X = 2+2
?- X is 2+2.          X = 4
?- 2+2 = +(2,2).      Yes
?- 2+2 is +(2,2).     No
Примечание 1
Обращаем внимание, что в языке Пролог для представления как предикатных, так и функциональных букв ИППП используются атомы, а маркером, помечающим функциональную букву, как раз и служит встроенный предикат "is".