Алгоритм побудови кнф має такі кроки.

1. Вилучити зв’язки “ алгоритм побудови кнф має такі кроки. - student2.ru ” і “ →” з формули А за допомогою правила а), як в алгоритмі ВНФ.

2. Вилучити подвійне заперечення за допомогою правила алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru F) = F, і перенести знак “ алгоритм побудови кнф має такі кроки. - student2.ru ” до атомів, користуючись законами де Моргана, як у алгоритмі побудови ВНФ.

3. Для отримання нормальної форми формули А використати дистрибутивні закони:

F алгоритм побудови кнф має такі кроки. - student2.ru (G алгоритм побудови кнф має такі кроки. - student2.ru Н) = (F алгоритм побудови кнф має такі кроки. - student2.ru G) алгоритм побудови кнф має такі кроки. - student2.ru (F алгоритм побудови кнф має такі кроки. - student2.ru Н);

F алгоритм побудови кнф має такі кроки. - student2.ru (G алгоритм побудови кнф має такі кроки. - student2.ru Н) = (F алгоритм побудови кнф має такі кроки. - student2.ru G) алгоритм побудови кнф має такі кроки. - student2.ru (F алгоритм побудови кнф має такі кроки. - student2.ru Н).

Приклад 4.2.3.Задану формулу (Р алгоритм побудови кнф має такі кроки. - student2.ru (Q → R)) → S перетворити у КНФ.

Розв’язання. Використовуючи кроки алгоритму 1, 2 і 3, отримаємо

алгоритм побудови кнф має такі кроки. - student2.ru (Q→R))→S=(Р алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Q алгоритм побудови кнф має такі кроки. - student2.ru R))→S= алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Q алгоритм побудови кнф має такі кроки. - student2.ru R)) алгоритм побудови кнф має такі кроки. - student2.ru S = =( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Q алгоритм побудови кнф має такі кроки. - student2.ru R)) алгоритм побудови кнф має такі кроки. - student2.ru S=( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru Q) алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru R) алгоритм побудови кнф має такі кроки. - student2.ru S= = ( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru Q алгоритм побудови кнф має такі кроки. - student2.ru S) алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru R алгоритм побудови кнф має такі кроки. - student2.ru S).

Приклад 4.2.4. Задану формулу (Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru Q) → R перетворити в КНФ.

Розв’язання. Використовуючи кроки наведеного вище алгоритму, отримаємо (Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru Q)→R= алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru Q) алгоритм побудови кнф має такі кроки. - student2.ru R = =( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru Q)) алгоритм побудови кнф має такі кроки. - student2.ru R = ( алгоритм побудови кнф має такі кроки. - student2.ru Р алгоритм побудови кнф має такі кроки. - student2.ru Q) алгоритм побудови кнф має такі кроки. - student2.ru R.

Побудова доведень в аксіоматичній системі

Основною задачею аксіоматичної системи логіки предикатів є установлення істинності предикатних тотожностей і клауз. Позначимо через алгоритм побудови кнф має такі кроки. - student2.ru будь-який предикат із задовільним числом аргументів, а через ( алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru )‒ відповідну йому кванторну групу. Тоді, наприклад, закон дистрибутивності матиме такий вигляд:

( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru (( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru ) =

= (( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru (( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru ).

У тому, що він виконується для одномісних предикатів, можна переконатися за допомогою процедури конкретизації:

х = а, b; алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru x; алгоритм побудови кнф має такі кроки. - student2.ru = А(х);

у = с, d; алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru y; алгоритм побудови кнф має такі кроки. - student2.ru = В(у);

z = e, f; алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru z; алгоритм побудови кнф має такі кроки. - student2.ru = C(z);

[А(а) алгоритм побудови кнф має такі кроки. - student2.ru А(b)] алгоритм побудови кнф має такі кроки. - student2.ru {[В(с) алгоритм побудови кнф має такі кроки. - student2.ru В(d)] алгоритм побудови кнф має такі кроки. - student2.ru [C(e) алгоритм побудови кнф має такі кроки. - student2.ru C(f)]} = ={[A(a) алгоритм побудови кнф має такі кроки. - student2.ru A(b)] алгоритм побудови кнф має такі кроки. - student2.ru [B(c) алгоритм побудови кнф має такі кроки. - student2.ru B(d)]} алгоритм побудови кнф має такі кроки. - student2.ru {[A(a) алгоритм побудови кнф має такі кроки. - student2.ru A(b)] алгоритм побудови кнф має такі кроки. - student2.ru [C(e) Ù алгоритм побудови кнф має такі кроки. - student2.ru C(f)]}.

Від того, що у квадратних дужках з’явиться замість диз’юнкції кон’юнкція і навпаки, а також замість одномісного предиката будуть фігурувати різні багатомісні предикати, – суть тотожності не зміниться. Вона залишиться істинною внаслідок справедливості законів логіки множин і принципу суперпозиції, який стверджує, що заміна будь-якої константи іншою константою або навіть групою констант не може вплинути на істинність тотожності.

Ті самі висновки можуть бути виконані й по відношенню до логіки висловлювань, що відрізняється від логіки Буля аксіомою порядку

( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru , ( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru ) алгоритм побудови кнф має такі кроки. - student2.ru .

Процедура конкретизації зводить предикатну аксіому порядку до простого висловлювання, тому якщо клауза істинна для висловлювань, то вона буде істинною і для предикатів.

Метод ідентифікації

Цей метод базується на перетворенні предикатної клаузи на клаузу логічного висловлювання шляхом ідентифікації ідентичних квантованих предикатів. Алгоритм методу ідентифікації має такі кроки.

1. Виділити однойменні квантовані предикати, по-значивши їх відповідними літерами формул логіки висловлювань.

2. Перетворити предикатну клаузу на клаузу логіки висловлювань, записавши її за допомогою ідентифікованих літер формул логіки висловлювань і замінивши при цьому всі логічні зв’язки розглянутої предикатної клаузи.

3. Розглянути одержану клаузу логіки висловлювань на її істинність чи хибність, використовуючи один із методів пропозиційної логіки: розділи 2.4, 2.5, 2.6, 2.7.

Приклад 4.4.1. Довести істинність предикатної клаузи алгоритм побудови кнф має такі кроки. - student2.ru х алгоритм побудови кнф має такі кроки. - student2.ru у Р(х, у) → → алгоритм побудови кнф має такі кроки. - student2.ru v Р(а, v), алгоритм побудови кнф має такі кроки. - student2.ru x Р(а, х) → алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v) → алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v) методом ідентифікації.

Розв’язання. Використовуючи перший крок алгоритму, введемо позначення:

А = алгоритм побудови кнф має такі кроки. - student2.ru х алгоритм побудови кнф має такі кроки. - student2.ru у Р(х, у) = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v);

В = алгоритм побудови кнф має такі кроки. - student2.ru v Р(а, v) = алгоритм побудови кнф має такі кроки. - student2.ru x Р(а, х);

С = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х) = алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v).

Згідно з другим кроком алгоритму робимо перетворення предикатної клаузи на клаузу логіки висловлювань:

А → В, В → С алгоритм побудови кнф має такі кроки. - student2.ru А → С.

Доведення істинності клаузи логіки висловлювань виконано аксіоматичним методом у прикладі 4.3.2. Звідси випливає, що і предикатна клауза є теж істинною.

Приклад 4.4.2. Довести істинність тотожності

алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru Р(х,у) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(v, и) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(v, и) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru x Р(х, у) = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v) методом ідентифікації.

Розв’язання. Згідно з першим кроком алгоритму введемо такі позначення:

А = алгоритм побудови кнф має такі кроки. - student2.ru х алгоритм побудови кнф має такі кроки. - student2.ru у Р(х, у) = алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(v, и) = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v);

В = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(v, и) = алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru x Р(х, у) = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х).

Використовуючи другий крок алгоритму, робимо перетворення предикатної тотожності на тотожність алгебри Буля:

( алгоритм побудови кнф має такі кроки. - student2.ru А алгоритм побудови кнф має такі кроки. - student2.ru В) алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru В) = В алгоритм побудови кнф має такі кроки. - student2.ru А.

Виконуючи елементарні логічні перетворення, отримаємо

В алгоритм побудови кнф має такі кроки. - student2.ru А = В алгоритм побудови кнф має такі кроки. - student2.ru А,

що підтверджує істинність предикатної тотожності.

Приклад 4.4.3. Довести істинність клаузи

алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v) → алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v), алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(х, у) алгоритм побудови кнф має такі кроки. - student2.ru Þ алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и) методом ідентифікації.

Розв’язання. Користуючись першим кроком алгоритму, введемо такі позначення:

алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(х, у); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v);

алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и).

Використовуючи другий крок алгоритму, робимо перетворення предикатної клаузи у клаузу логіки висловлювань:

алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru або алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Згідно з методом резолюції, суперечності можливі, якщо можливі дві інші суперечності, що випливають із клаузи логіки висловлювань:

алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0, алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Подання їх предикатними суперечностями

алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(х, у), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(v, и) алгоритм побудови кнф має такі кроки. - student2.ru 0,

алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и) алгоритм побудови кнф має такі кроки. - student2.ru 0

підтверджує істинність предикатної клаузи.

Приклад 4.4.4.Довести істинність клаузи

алгоритм побудови кнф має такі кроки. - student2.ru z В(z, z) → алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru y В(х, у), алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru A(z, y) → → алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v B(v, u), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru x A(b, x) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru B(x, z) алгоритм побудови кнф має такі кроки. - student2.ru Ù алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru A(z, x) методом ідентифікації.

Розв’язання. Згідно з першим кроком алгоритму введемо такі позначення:

алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru y A(z, y); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru x A(b, x);

алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v B (v, u) = алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru x B(x, z);

алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru z B (z, z); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y B(x, y).

Використовуючи другий крок алгоритму, перетворюємо предикатну клаузу у клаузу логіки висловлювань:

алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ruалгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru .

Замінивши імплікацію і привівши клаузу до суперечності, отримаємо

алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Згідно з методом резолюцій суперечності можливе тоді й тільки тоді, коли можливі інші суперечності клаузи, що випливають із клаузи логіки висловлювань:

алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0, алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0, алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Подання їх предикатними суперечностями

алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru y А (z, z), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru х A(b, x) алгоритм побудови кнф має такі кроки. - student2.ru 0;

алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v B (v, u), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru z B(z, z) алгоритм побудови кнф має такі кроки. - student2.ru 0;

алгоритм побудови кнф має такі кроки. - student2.ru z алгоритм побудови кнф має такі кроки. - student2.ru x B(x, z), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y B(x, y) алгоритм побудови кнф має такі кроки. - student2.ru 0

підтверджує істинність предикатної клаузи.

Метод резолюцій

В основу цього методу покладене не лише перетворення предикатної клаузи на клаузу логічного висловлювання, а подання останньої у вигляді кон’юнктивної нормальної форми (КНФ) і суперечності. Алгоритм методу резолюцій має такі кроки.

1. Виділити однойменні квантові предикати, позначивши їх відповідними літерами формул логіки висловлювань.

2. Перетворити предикатну клаузу на клаузу логіки висловлювань, записавши її за допомогою ідентифікованих літер формул логіки висловлювань.

3. Перетворити формулу логіки висловлювань на КНФ і звести її до суперечності.

4. Виконати склеювання диз’юнктивних посилок, видаливши у них тавтологічні висловлювання або їх компонування, що приводить до суперечностей.

5. Якщо на кроці 4 алгоритму буде одержана загальна суперечність, то предикатна клауза істинна, а якщо ні – то хибна.

Приклад 4.5.1.Довести істинність клаузи

алгоритм побудови кнф має такі кроки. - student2.ru х алгоритм побудови кнф має такі кроки. - student2.ru у Р(х, у) → алгоритм побудови кнф має такі кроки. - student2.ru v Р(а, v), алгоритм побудови кнф має такі кроки. - student2.ru x Р(а, х) → алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х) Þ алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru vР(и, v) → алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v) методом резолюцій.

Розв’язання. Використовуючи перший крок алгоритму, введемо позначення

А = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(х, у) = алгоритм побудови кнф має такі кроки. - student2.ru u алгоритм побудови кнф має такі кроки. - student2.ru v Р(и, v);

В = алгоритм побудови кнф має такі кроки. - student2.ru v Р(а, v) = алгоритм побудови кнф має такі кроки. - student2.ru x Р(а, х);

С = алгоритм побудови кнф має такі кроки. - student2.ru x алгоритм побудови кнф має такі кроки. - student2.ru y Р(у, х) = алгоритм побудови кнф має такі кроки. - student2.ru v алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, v).

Згідно з другим кроком алгоритму виконаємо пере-творення предикатної клаузи на клаузу логіки висловлювань: А → В, В → С алгоритм побудови кнф має такі кроки. - student2.ru А → С.

Користуючись третім кроком алгоритму, перетворимо отриману клаузу логіки висловлювань у КНФ і зведемо її до суперечності

алгоритм побудови кнф має такі кроки. - student2.ru А алгоритм побудови кнф має такі кроки. - student2.ru В, алгоритм побудови кнф має такі кроки. - student2.ru В алгоритм побудови кнф має такі кроки. - student2.ru С, алгоритм побудови кнф має такі кроки. - student2.ru ( алгоритм побудови кнф має такі кроки. - student2.ru А алгоритм побудови кнф має такі кроки. - student2.ru С) алгоритм побудови кнф має такі кроки. - student2.ru 0.

На четвертому кроці алгоритму виконаємо склеювання першої і другої посилок, у результаті одержимо посилку алгоритм побудови кнф має такі кроки. - student2.ru А алгоритм побудови кнф має такі кроки. - student2.ru С, яку склеюємо з третьою посилкою. Результатом цього склеювання є загальна суперечність, тому предикатна клауза – істинна.

Приклад 4.5.2.Довести істинність клаузи

алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и, а) алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru z Р(у, у, z) алгоритм побудови кнф має такі кроки. - student2.ru

Þ алгоритм побудови кнф має такі кроки. - student2.ru q Р(q, c, q) алгоритм побудови кнф має такі кроки. - student2.ru q алгоритм побудови кнф має такі кроки. - student2.ru u P(b, u, q) алгоритм побудови кнф має такі кроки. - student2.ru q алгоритм побудови кнф має такі кроки. - student2.ru u Р(b, u, q)

методом резолюцій.

Розв’язання. Використовуючи перший крок алгоритму, введемо позначення: А = алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и, а); В = алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru z Р(у, у, z); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru q Р(q, c, q); алгоритм побудови кнф має такі кроки. - student2.ru = алгоритм побудови кнф має такі кроки. - student2.ru q алгоритм побудови кнф має такі кроки. - student2.ru u P(b, u, q).

Користуючись другим кроком алгоритму, виконаємо перетворення предикатної клаузи на клаузу логіки висловлювань: А алгоритм побудови кнф має такі кроки. - student2.ru В алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru ; алгоритм побудови кнф має такі кроки. - student2.ru .

Спростовуючи цю клаузу і використовуючи третій крок алгоритму, отримаємо А алгоритм побудови кнф має такі кроки. - student2.ru В, алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru , алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Згідно із четвертим кроком алгоритму суперечність у даному висловлюванні можливе, якщо можливі дві інші суперечності:

А, алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0 В, алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru 0.

Тобто: алгоритм побудови кнф має такі кроки. - student2.ru u Р(и, и, а), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru q Р(q, c, q) алгоритм побудови кнф має такі кроки. - student2.ru 0;

алгоритм побудови кнф має такі кроки. - student2.ru y алгоритм побудови кнф має такі кроки. - student2.ru z P(у, у, z), алгоритм побудови кнф має такі кроки. - student2.ru алгоритм побудови кнф має такі кроки. - student2.ru q алгоритм побудови кнф має такі кроки. - student2.ru u P(b, u, q) алгоритм побудови кнф має такі кроки. - student2.ru 0.

Звідси і випливає істинність предикатної клаузи.

Контрольні запитання

1. У чому різниця пропозиційної логіки від аксіоматичної системи логік?

2. Які аксіоми має аксіоматична система логік?

3. Запишіть формули аксіом аксіоматичної системи логік.

4. Які правила виведення є спільними для пропозиційної логіки та аксіоматичної системи логік?

5. На які групи та підгрупи діляться правила виведення?

6. Для яких цілей використовують правила введення і правила вилучення?

7. Які обмеження необхідні для правил узагальнення та існування? Які можуть бути наслідки, якщо не дотримуватися зазначених обмежень?

8. Сформулюйте правило перейменування вільних змінних.

9. У чому сутність правил перейменування зв’язних змінних?

10. Дайте визначення випередженої нормальної форми.

11. Сформулюйте алгоритм перетворення виразів довільної форми у ВНФ.

12. Сформулюйте алгоритм подачі матриці А формули Ф у кон’юнктивній нормальній формі.

13. Що є основною задачею логіки предикатів?

14. Який закон використовують для побудови доведень у логіці предикатів?

15. Закони яких теорій використовують при побудові доведень у логіці предикатів і чому?

16. На якому принципі базується метод ідентифікації?

17. Сформулюйте алгоритм методу доведення предикатних клауз методом ідентифікації.

18. За яких умов і для яких предикатних клауз або тотожностей можна застосовувати алгоритм ідентифікації?

19. Які основні принципи покладені у метод резолюцій?

20. Сформулюйте алгоритм методу доведення предикатних клауз методом резолюцій.

21. За яких кінцевих умовах предикатна клауза буде істинною, а при яких – хибною?

Наши рекомендации