Запишем на языке исчисления предикатов некоторое выражение:
y x (человек(x) отец(y,x))
Записанное выражение означает "у всех людей общий отец".
Приведем пример простого доказательства на языке исчисления предикатов.
Даны следующие факты:
"Иван является отцом Михаила" - отец(a,b)
"Петр является отцом Василия" - отец(c,d)
"Иван и Петр являются братьями" -
w (брат(a,c) отец(w,a) отец(w,c))
Даны следующие определения:
"Брат отца является дядей" -
y (дядя(x,u) отец(y,u) брат(y,x))
"Сын дяди является двоюродным братом" -
x (дв.брат(z,u) дядя(x,u) отец(x,z))
Требуется доказать, что "Михаил и Василий являются двоюродными братьями":
x y (дв.брат(b,d) отец(y,b) брат (y,x) отец(x,d))
Делаем подстановки y = Иван, b = Михаил и x = Петр, d = Василий, видим, что предикаты 1, 2, 3 дают правильное предложение 6.
Рассмотренный нами язык называется исчислением предикатов первого порядка и позволяет связывать знаком квантора переменные, соответствующие объектам из предметной области, но не предикаты или функции.
Исчисление предикатов второго порядка позволяет связывать знаком квантора не только переменные, соответствующие объектам из предметной области, но и предикаты или функции. Примером исчисления предикатов второго порядка может служить выражение "Единственное качество Джона - это честность", которое записывается так:
P (P(Джон) качество(P) P = честность)
Общая схема решения логических задач с помощью логики предикатов имеет вид: Mi = {a i,1, a i,2,..., a i , q}, I = 1,..., q - множества значений предметных переменных (x1,x2,..., x p) X. P j (y j,1, y j,2,..., y j, k), j = 1,..., r - набор предикатов, причем y j,l X, l = 1,..., k F = {s1, s2,..., s m} - множество истинных высказываний ( множество фактов, или семантическая сеть).
Составляются одно или несколько предикатных выражений (получаются из простых предикатов с помощью логических операций). Наборы значений предметных переменных, при которых эти выражения принимают значения "истина", являются решениями поставленной задачи.
Пример. Даны следующие факты:
7. "Иван является отцом Михаила" - отец(a,b)
8. "Петр является отцом Василия" - отец(c,d)
9. "Иван и Петр являются братьями" -
w (брат(a,c) отец(w,a) отец(w,c))
Даны следующие определения:
10. "Брат отца является дядей" -
y (дядя(x,u) отец(y,u) брат(y,x))
11. "Сын дяди является двоюродным братом" -
x (дв.брат(z,u) дядя(x,u) отец(x,z))
Требуется доказать, что "Михаил и Василий являются двоюродными братьями":
12. x y (дв.брат(b,d) отец(y,b) брат (y,x) отец(x,d))
Делаем подстановки y = Иван, b = Михаил и x = Петр, d = Василий, видим, что предикаты 1, 2, 3 дают правильное предложение 6.