Дмитрий Поспелов - Моделирование рассуждений. Опыт анализа мыслительных актов
В преобразованиях использованы большие латинские буквы, которые могут соответствовать любым подвыражениям формул ?1 и ?2. Стрелки и показывают направление преобразований. (Знак есть по сути знак .)
С помощью этих преобразований можно устранять различия между ?1 и ?2, которые мы перечислили выше. Укажем в специальной табл. 4 классы преобразований F1, которые можно использовать для устранения различий. Первое различие разделено на два: различие 1’ требует добавления выражений в формулу, а различие 1’’ – вычеркивания из формулы лишних выражений.
Таблица 4
Крестики поставлены там, где можно устранить различие с помощью соответствующего преобразования.
Покажем работу программы «Логик-теоретик» на несложном примере. Пусть требуется доказать равенство ?1=?2, имеющее вид
Применим к ?1 первое преобразование из F7 справа налево. Выбор F7 определяется различием ?1 и ?2. Из ?1 необходимо убрать лишнее подвыражение С, которого нет в ?2. После этого получим
Поскольку в ?1 осталось еще выражение С, которого нет справа, то снова фиксируется различие 1’’ и ищется подходящее преобразование. Таким преобразованием является четвертое из F7. Но для его применения надо сначала использовать преобразование F1 для устранения различия 6. После этого, применяя четвертое преобразование из F7, получаем
Теперь можно применить второе преобразование из F7:
Четвертое преобразование из F7 приводит к окончательному результату
Пример, конечно, не отражает всех особенностей работы программы «Логик-теоретик». Мы несколько упростили задачу. Как видно из таблицы различий, выбор преобразования на каждом шаге далеко не однозначен. В формулах могут существовать одновременно несколько различий, а для ликвидации различия можно использовать несколько преобразований. Всякий вывод, как бы он не был организован, носит переборный характер. И успешность того или иного выбора преобразования не может быть оценена локально, в момент выбора. Поэтому программа вынуждена перебирать варианты, заходить в тупики, проходить циклы прежде, чем она сможет найти правильный путь решения. Повышение эффективности процесса вывода – центральная проблема всех автоматизированных систем дедуктивного вывода.
Исчисление предикатов
Исчисление высказываний не позволяет описывать дедуктивные рассуждения всех типов, в частности силлогистические умозаключения. Оно слишком бедно выразительными средствами.
Его естественным развитием является исчисление предикатов. Как и исчисление высказываний, исчисление предикатов представляет собой формальную систему. Мы не будем описывать его в такой строгой форме (любители строгости могут найти подобные описания в литературе к данному разделу), а попытаемся оставаться на содержательном уровне описания.
Под предикатом будем понимать некоторую связь, заданную на наборе из констант или переменных, например утверждение «? больше ?». Если семантика ? и ? не задана, то о предикате сказать особенно нечего. Пожалуй, только то, что он задает двуместное отношение, семантика которого такова, что оно является антирефлексивным (неверно, что «? больше ?»), асимметричным и транзитивным. Но при задании семантики (т.е. областей определения переменных ? и ?) о предикате можно будет сказать существенно больше. Если ? и ? – площади городов соответственно в СССР и Японии, то при задании списков городов и означивании переменных константами мы получим отношение между двумя высказываниями типа «Площадь Вологды больше площади Токио» или «Площадь Ленинграда больше площади Нары». После этого становится возможным говорить об истинности или ложности предиката. Для нашего примера первое означивание дает ложное значение предиката, а второе – истинное. Иногда для утверждения об истинности или ложности предиката можно обойтись и без означивания. Например, если областью определения х являются целые положительные числа, то предикат «х больше ?5» будет тождественно истинен.
В исчислении предикатов используются те же операции, что и в исчислении высказываний. С их помощью образуются предикатные формулы. Будем обозначать предикаты большими латинскими буквами. Примерами предикатных формул могут служить Р(х,у)&Q(a,b) или P(?)P(z,l).
В исчислении предикатов используются два квантора: квантор общности и квантор существования. Первый обозначается как , а запись xP(x) эквивалентна утверждению «Для всех х из области его определения имеет место Р(х)». Второй квантор обозначается как , а запись хР(х) эквивалентна утверждению «Найдется по крайней мере один х* в области определения х, такой, что истинен Р(х*)». Переменные, находящиеся в сфере действия кванторов, называются связанными, остальные переменные – свободными.
Вспомним И.А. Крылова: «А вы, друзья, как ни садитесь, все ж в музыканты не годитесь!». Обозначим через Р(х,у) предикат, который связывает между собой способ рассаживания участников квартета и качество исполняемой ими музыки. Предикат Р(х,у) становится истинным лишь тогда, когда найдено такое взаимное расположение зверей в квартете, что качество музыки позволяет назвать исполнителей музыкантами. При этих условиях цитате из басни «Квартет» соответствует формула xP(x,у).
А вот Ф. Тютчев: «Бывают роковые дни лютейшего телесного недуга и страшных нравственных тревог…». Если Q(u,v) есть предикат, в котором переменная u определена на множестве дней, а переменная v на области настроений, связанных с «телесным недугом» и «страшными нравственными тревогами», то в исчислении предикатов началу стихотворения Тютчева будет соответствовать формула uQ(u,v).
Отметим, что имеют место следующие соотношения:
Справедливость их вытекает из смысла кванторов. Они позволяют любую формулу в исчислении предикатов представить в виде предваренной нормальной формы (ПНФ). В ней сначала выписываются все кванторы, а затем предикатные выражения. Например, формула
записана в ПНФ.
Введение кванторов и , а также их отрицаний наводит на мысль о связи исчисления предикатов и силлогистики Аристотеля. Вспомним еще раз смысл кванторов, использованных в силлогистике: Asp – «Всякое s есть р»; Esp – «Ни одно s не есть р», Isp – «Некоторые s есть р» и Osp – «Некоторые s не есть р». Представляется вполне справедливым заменить эти выражения силлогистики следующими четырьмя формулами исчисления предикатов:
На первый взгляд такая замена вполне законна. Но для того, чтобы убедиться в этом, необходимо показать, что в исчислении предикатов могут быть выведены все модусы силлогистики Аристотеля.
Система аксиом и правила вывода в исчислении предикатов могут быть заданы следующим образом. В качестве системы аксиом берется любая известная система аксиом исчисления высказываний и к ней добавляются специфические для исчисления предикатов аксиомы, например, такие:
Смысл их очевиден. Первая аксиома говорит о том, что если Р(х) истинен для любых х, то и для некоторого у из того же универсума истинность предиката должна сохраняться. Вторая аксиома говорит о том, что если найдется такое у, что Р(у) будет истинным, то верно, что существует х, для которого Р(х) истинно.
К правилам вывода, используемым в исчислении высказываний, в исчислении предикатов добавляются еще три правила.