Описание высказываний на языке PROLOG

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

Пролог-программа состоит из предложений, которые бывают трех типов: факты, правила и вопросы.

Факты есть высказывания, которые заканчиваются точкой и имеют значение только “и”. Структура такого предложения описана предикатом или n-местным отношением, все аргументы которого есть термы или предметные постоянные. Предметные постоянные на языке PROLOG называют атомами. Термы описывают структуру или какие-то функциональные отношения между атомами. Предметные постоянные всегда начинаются со сточной буквы латинского алфавита и представляют собой последовательность букв, цифр и знака подчеркивания.

Например,

· простое_число(3).

Это есть высказывание A1 (см. с. 5), структура которого описана предикатом P1(x):=”x-простое число”, где x=3 есть атом.

·        частное_от_деления(6, 2, 3).

Это есть высказывание Е (см. с.6), структура которого описана предикатом P3(x, y, z):=”z есть частное от деления числа x на y”, где x=6, y=2, z=3 есть атомы.

·        студент_университета,_обучающийся_по_специальности(Петров, КГТУ, прикладная информатика»).

Это есть высказывание, структура которого описана предикатом

P6(x, y, z):= «студент x университета y, обучающийся по специальности z”, где x=”Петров”, y=”КГТУ”, z=”прикладная информатика” есть атомы.

·        родословная русских князей X века:

отец(игорь, святослав).

отец(святослав,владимир).

отец(владимир, борис).

отец(владимир,глеб).

дед(игорь, владимир).

дед(святослав, борис).

дед(святослав, глеб).

брат(борис,глеб).,

 

где игорь, святослав, владимир, борис, глеб есть атомы.Правила есть предложения, истинность которых зависит от истинности условий: “если истинны условия (посылки), то истинно и заключение (вывод)”.

На языке Prolog эти правила записывают так:

<�заключение>:- <�условия>.

Символ “:-“ соответствует символу обратной импликации ”¬”.

Левую часть правила называют головой предложения, а правую – телом предложения. В теле предложения перечисляют условия, определяющие вывод заключения. Если условия имеют между собой конъюнктивную связь, то между ними ставится запятая  “,”. Если условия в правиле имеют между собой дизъюнктивную связь, то между ними ставится точка с запятой (“;”). Голова предложения всегда сдвинута влево относительно перечня условий. Каждое условие начинается с новой строки.

Например, для родословной русских князей X века имеем:

·        дед(игорь, владимир):-

отец(игорь, святослав),

отец(святослав, владимир).

Это — высказывание о том, что если игорь был отцом святослава, а святослав – отцом владимира, то игорь был дедом владимиру.

·          дед(святослав, борис); дед(святослав, глеб):-отец(святослав,владимир),

отец(владимир, борис);

отец(святослав,владимир),

 отец(владимир,глеб).

Это есть высказывание о том, что святослав  был отцом владимира и дедом борису или глебу.

·        брат(борис, глеб):-.

родитель (владимир, борис),

 родитель (владимир,глеб).

Это есть высказывание о том, что если владимир был отцом бориса и отцом глеба, то борис и глеб были братьями

 

Логика - доступно для всех