Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
20.02.2016
Размер:
290.53 Кб
Скачать

Лекция 2 (ч2)

ИСПОЛЬЗОВАНИЕ ПРОЛОГА ДЛЯ ДОКАЗАТЕЛЬСТВА ТЕОРЕМ

Для получения программы 4.1 необходимо загрузить модули Пролог-системы

PROLOG, SIMPLE и TOLD.

Функции AND, OR и NOT встроены в Пролог. С помощью этих функций и определяемых в программе отношений true, false и Т сможем определять

истинность сложных высказываний, а также проверять на эквивалентность различные высказывания.

В программе 4.1 отношения b, g и h соответствуют одноименным функциям, приведенным на табл. 4.8.

Они могут быть представлены как

h =

Для того чтобы предоставить пользователю возможность вводить значение той или иной логической переменной, используется отношение is-told.

Запрос может иметь следующую форму «р истинно?» («р true?»,) и, если на него будет получен ответ «да» (yes), то значением р становится истина (true).

В случае же, если вводится ответ «нет» (по), значением р считается ложь

(false).

-------------

Отношение Т, как уже было указано, используется для проверки истинности сложных высказываний.

--------------

---------------

С помощью данного отношения определяется истинность заданного сложного высказывания в зависимости от значений входящих в него переменных, которые в ответ на вопросы системы вводятся пользователем,

Диалог между Пролог-системой и пользователем может иметь, например,

следующий вид:

В рассмотренном примере диалога проверяется высказывание, составленное с помощью операции AND.

-------------

Аналогичная проверка для других значений переменных будет выглядеть следующим образом:

Отметим, что обработав третий ответ пользователя, Пролог-система ответила сразу же после получения значения р, не производя в данном случае ненужной проверки значения q.

---------

-------

Приведем теперь пример определения истинности высказывания b:

----------

Функция OR принимает значение истина, когда это же значение имеет хотя

бы одна из двух ее переменных.

Поэтому Пролог-система, обнаружив, что значением первой переменной яв- ляется истина, прекращает проверку.

Ниже приведены примеры диалога при проверке высказывания

---------------

--------------

--------------

-------------

Впримере представлены варианты получения ответа для всех четырех позиций таблицы истинности данной функции.

Впервом варианте р и q истинны, поэтому второй терм анализируемой функции не проверяется, так как функция OR, связывающая оба терма, в случае истинности первого терма также принимает значение истина.

Значением первого терма во втором варианте является ложь, поэтому Пролог-система переходит к проверке истинности второго терма.

Поскольку не обеспечено запоминание ответа на первый вопрос об

истинности он повторяется

еще раз необходимо утвердительно на него ответить. Сразу после этого Прологсистема устанавливает, что значением g является ложь, так как независимо от значения q значение второго терма — ложь.

В третьем и четвертом вариантах, так же как и во втором, Пролог-система

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

--------------

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

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

Для этого воспользуемся правилом алгебры логики, позволяющим манипулировать знаком отрицания: двойное отрицание переменной равно

самой переменной:

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

Рассмотрим логическую функцию

Согласно правилам алгебры логики, выражение для этой функции может

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

---------

--------

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

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

Функция OR принимает значение ложь только в том случае, когда р и q ложны

одновременно, поэтому справедливо следующее равенство

С помощью программы 4.1 можно проверить справедливость последнего

равенства, а также сравнить его

Если они окажутся идентичными, это будет доказательством того, что тождественно равно

------------

Добавим к программе 4.1 следующий фрагмент:

Поскольку справедливо «X ложь, если НЕ X истина» (X false if not X true), приведенный выше фрагмент эквивалентен следующему:

что в символьной записи соответствует

Можно проверить это равенство с помощью следующих вопросов:

----------------

-----------