Debugging

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

Nodebug

Цільове затвердження nodebug викликає усунення усіх контрольних точок, встановлених на даний момент.

Nospy

Подібно до spy, nospy є префіксним оператором. Предикат nospy є більше селективним, ніж nodebug, оскільки ви можете точно вказати, які контрольні точки мають бути видалені. Це досягається шляхом вказівки аргументу, що задається в точності в такій же формі, як і для предиката spy.

53.Короткий вступ в обчислення предикатів

Таким чином, логіка може бути використана для вираження висловлювань, стосунків між висловлюваннями і правил виводу одних висловлювань з інших.

У численні предикатів об'єкти представляються за допомогою термів. Існують терми трьох типів:

Константа. Це символ, що означає індивідуальний об'єкт або поняття. Константи можна розглядати як атоми мови.

Змінна. Це символ, що використовується в різний час для позначення різних індивідуальних об'єктів. X,Людина і Грек є змінними.

Складений терм. Складений терм складається з функціонального символу і впорядкованої множини термів, що є його аргументами. Ідея полягає в тому, що складений терм означає той або інший індивідуальний об'єкт, що залежить від інших індивідуальних об'єктів, представлених його аргументами.

Існує декілька способів побудови складніших висловлювань з простіших. Передусім, можна використати логічні зв'язки. У такий спосіб можна виразити поняття 'не', 'і', 'або', 'випливає' і 'є еквівалентним'. Далі приведений короткий опис цих зв'язок і значень, що вкладаються в них. Тут α і β використовуються для позначення довільних висловлювань (формул). У наступній таблиці наводиться традиційна форма запису висловлювань, що використовується в обчисленні предикатів, і форма запису, що використовується в цій темі.

Так, наприклад, конструкція

чоловік(саша) # жінка(саша)

могла б бути використана для представлення висловлювання про те, що Саша є чоловіком або Саша є жінкою. Конструкція

чоловік(іван) -> людина(іван)

могла б представляти висловлювання: з того, що Іван є чоловіком, випливає, що він є людиною (якщо Іван чоловік, то він — людина). Поняття імплікації і еквівалентності іноді при першому знайомстві з ними представляються дещо складними. Ми говоримо, що з α випливає β, якщо кожен раз, коли α істинне, то β також істинне. Ми говоримо, що α еквівалентне β, якщо α істинне в точності в тих же випадках, що і β. Насправді, ці поняття можуть бути означені через поняття 'і', 'або', 'не'.

А саме:

α->β означає те ж саме, що (~α)#β

α<->β означає те ж саме, що і (α&β) #(~α&~β)

α<->β також означає те ж саме, що і (α->β)&(β->α)

Досі нічого не було сказано про те, що означають змінні, що входять до складу висловлювання. Насправді, використання змінних має сенс лише у разі, коли вони вводяться за допомогою кванторів. Квантори дозволяють робити висловлювання про множину об'єктів і формулювати твердження, істинні для цих множин. У численні предикатів є два квантори. Якщо ν означає змінну, а ρ — це довільне висловлювання, то коротко значення кванторів можна виразити так:

Перший з кванторів називається квантором загальності, оскільки він вказує на усі об'єкти, що існуючі у всесвіті («для усіх ν,...»). Другий квантор називається квантором існування, оскільки він вказує на існування деякого об'єкту (або об’єктів) («існує ν такий що…»). Як приклад приведемо формулу

аll(Х, чоловік(Х) -> людина(Х))

яка означає, що яке б значення X ми не вибрали б, якщо X є чоловіком, то тоді X — людина. Цю формулу можна прочитати так: для будь-якого X, якщо X є чоловіком, то X є людиною. Чи в простішому формулюванні: кожен чоловік є людиною. Аналогічно

exists(Z, батько(іван, Z) & жінка(Z))

означає, що існує такий об'єкт Z, що Іван є батьком Z і Z — жінка. Цю формулу можна прочитати так: існує такий Z, що Іван є батьком Z і Z — жінка.

54.Приведення формул до стандартної форми

Формули числення предикатів, записані з використанням зв'язок, -> (імплікація) і <-> (еквівалентність) можуть бути переписані лише з використанням зв'язок & (кон'юнкція), # (диз'юнкція) і ~ (заперечення). Існують багато різних способів запису одного і того ж висловлювання. Процес приведення формули числення предикатів до стандартної форми складається з шести основних етапів.

Етап 1 — виключення імплікацій і еквівалентностей

Процедура розпочинається із заміни всіх входжень -> і <-> відповідно до їх визначень. Так, наприклад, формула

аll(Х, чоловік(Х) -> людина(Х))

буде перетворена у формулу

аll(Х,~чоловік(Х) # людина(Х))