Для программирования задач исчисления высказываний используют язык программирования 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 века имеем:
· дед(игорь, владимир):-
отец(игорь, святослав),
отец(святослав, владимир).
Это — высказывание о том, что если игорь был отцом святослава, а святослав – отцом владимира, то игорь был дедом владимиру.
· дед(святослав, борис); дед(святослав, глеб):-отец(святослав,владимир),
отец(владимир, борис);
отец(святослав,владимир),
отец(владимир,глеб).
Это есть высказывание о том, что святослав был отцом владимира и дедом борису или глебу.
· брат(борис, глеб):-.
родитель (владимир, борис),
родитель (владимир,глеб).
Это есть высказывание о том, что если владимир был отцом бориса и отцом глеба, то борис и глеб были братьями