Родитель(имя,имя)

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

Реализация метода резолюций в языке Пролог.

Рассмотрим работу алгоритма доказательства теорем методом резолюций на примере известной задачи о родственных отношениях[7]. В качестве машинной реализации будет использована Турбо-версия языка Пролог[15,16], в которой допускается запись предикатов на русском языке. Рисунок 4.1 отображает отношения родителей и детей, причем по той причине, что в языке Пролог константы начинаются со строчной буквы, все имена на рисунке так и представлены.

 
 

 

 


 

 

Рис. 4.1. Дерево родственных отношений.

Тот факт, что Том является родителем Боба, можно записать на Прологе так:родитель( том,боб ).

Здесь мы выбрали родитель в качестве отношения (предиката), а том и боб являются аргументами этого отношения. В пролог-программе в разделе domainsаргументы предиката родительи ниже описанного предиката предокописаны как атомы символьного типа (symbol). В разделе clausesпрограммы непосредственно по дереву родственных отношений записаны все имеющиеся факты, а также два правила для определения предиката предок, пояснения которых будут даны позднее.

Текст пролог-программы:

domains% Раздел доменов

имя=symbol

predicates% Раздел предикатов