Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по мат логике.doc
Скачиваний:
152
Добавлен:
20.05.2014
Размер:
1.17 Mб
Скачать

Доказательство от противного Неаксиоматическое описание процедуры

В логике предикатов используется формальный метод доказательства теорем, допускающий возможность его машинной реализации. Но для упрощения рассмотрим сначала процедуру доказательства неаксиоматическимпутем.

Пусть в качестве задана группа логических формул следующего вида:

Отец(x, y) :xявляется отцомy;

Брат(x, y) : x, yбратья;

Кузен(x, y) : x, yдвоюродные братья;

Дедушка(x, y) : xдедушкаy.

Используя эти предикаты можно записать следующие утверждения:

(1) (x1)(y1)(z1)((отец(x1, y1) отец(y1, z1)) дедушка(x1, z1)) : еслиx1 отецy1, аy1 отецz1, тоx1 дедушкаz1.

(2) (x2, y2, z2, w2)((отец(x2, y2) брат(x2, z2) отец(z2, w2)) кузен(y2, w2)) .

(3) x3, y3, z3)((отец(x3, y3) отец(x3, z3) ) брат(y3, z3)).

Предположим также, что помимо этих логических формул заданы следующие факты:

(4) Отец(Александр, Сергей),

(5) Отец(Сергей, Ричард).

(6) Отец(Сергей, Иван).

Сначала неаксиоматически зададим процедуру, которая из логических формул выводит заключение. Вывод формулы Cиз логических формулA, B будем задавать в виде схемы:

А: Все люди смертны

В: Сократ – человек

С: Сократ – смертен.

Если в переменную подставляется значение, то слева от наклонной черты запишем имя переменной, а справа – значение. Например, если в переменную x подставляется значениеСократ, то будем это записывать какx/Сократ.

Предположим, теперь, что требуется доказать – истинна или ложна логическая формула. В ее истинности или ложности можно убедиться логической процедурой, применив ранее заданные логические формулы. Эта процедура выглядит аналогично процедуре доказательства теорем, когда выдвигается некоторая теорема, а справедливость ее устанавливается из известных аксиом.

Например, предположим, что задан вопрос: «Кто дедушка Ричарда?». Его можно записать в виде:

(x)(дедушка(x, Ричарда)).

Ответ может быть получен в следующей последовательности:

Поскольку заключение получается из комбинации уже существующих правил, ответ является результатом процедуры восходящего вывода.

С другой стороны можно осуществить и нисходящий вывод. Нисходящий вывод начинается с того заключения, которое должно быть получено, и далее в базе проводится поиск информации, которая последовательно позволяет прийти к данному заключению.

В логике предикатов такая процедура полностью формализована и носит название метода резолюции.

Для применения этого метода исходную группу логических формул преобразуют в нормальную форму. Преобразование проводится в несколько стадий.

15. Приведение к префисной нормальной форме. Основные правила. Префиксная нормальная форма

Рассмотрим фразу «любой человек имеет отца». Ее можно представить в логике предикатов в следующем виде:

(x)(человек(x) (y)(отец(y, x))).

Квантор находится внутри ППФ. Это не всегда удобно, поэтому целесообразно вынести все кванторы за скобки, чтобы они стояли перед ППФ. Такая форма носит названиепрефиксной нормальной формы.

Преобразование к префиксной нормальной форме произвольной ППФ можно легко выполнить машинным способом, используя для этого несколько простых правил.

Во-первых, необходимо исключить связки и. По определению:

Следовательно, во всех комбинациях ППФ можно ограничиться тремя связками ,и .

Предикат, не содержащий переменных, аналогичен высказыванию, поэтому такие предикаты будем обозначать F, G.Когда некоторое выражение выполняется для любого квантораибудем записывать такой кванторQ.

Легко показать:

I.

Это соответствует: высказывание не имеет отношения к квантору переменной, которая включена в другой предикат.

Между предикатами существует следующее соотношение:

Таким образом, «необязательно F(x) выполняется для всехx»«существует такоеx, чтоF(x) не выполняется»; «не существует такоеx, что выполняетсяF(x)»«для всехx не выполняетсяF(x)».

Далее имеем:

II.(x)F(x)(x)H(x) = (x)(F(x)H(x))

(x)F(x)(x)H(x) = (x)(F(x)H(x)).

Это означает, что квантор обладает дистрибутивностью относительно, а- относительно.

С другой стороны:

(x)F(x)(x)H(x)(x)(F(x)H(x)).

(x)F(x)(x)H(x)(x)(F(x)H(x)).

Это легко показать. Пусть для первого выражения x определен на множествеD = {а, б, в}, при этом истиной являютсяF(а), F(б), H(в). Тогда левая часть не выполняется, а правая истинна. На самом деле справедливо:

(x)F(x)(x)H(x)(x)(F(x)H(x)).

(x)F(x)(x)H(x)(x)(F(x)H(x)).

Смысл этих формул в том, что описание для двух разделенных предикатов не совпадает с описанием, использующим эти предикаты одновременно как одно целое и с одинаковыми переменными.

Поэтому, изменив все переменные в их правых частях, получим:

(x)F(x)(x)H(x) = (x)F(x) (y)H(y),

(x)F(x) (x)H(x) = (x)F(x) (y)H(y).

Теперь H(y) не содержит переменнойx и поэтому не зависит от связыванияx.Отсюда:

III. (x)F(x)(x)H(x) = (x)(y)(F(x) H(y)),

(x)F(x) (x)H(x) = (x)(y)(F(x) H(y)).

Таким образом, процесс получения префиксной нормальной формыможно представить какпоследовательность шагов:

  1. Используя формулы для ,, заменим их на,,.

  2. Воспользовавшись выражениями

внесем отрицания внутрь предикатов.

  1. Вводятся новые переменные, где это необходимо.

  2. Используя 1, 2, 3 получаем префиксную нормальную форму.

Пример.

В качестве примера рассмотрим следующее выражение:

Шаг 1:

Шаг 2:

Шаг 3:нет необходимости.

Шаг 4:используем выражение 1 по переменнойz:

Теперь применяем выражение 1 по переменной w