- •Мета та задачі домашньої контрольної роботи
- •Короткі теоретичні відомості та приклади розв’язання задач Логічне слідування
- •Методи перевірки тотожної хибності й тотожної істинності формул логіки висловлень
- •Метод перевірки суперечності й тавтологічності формул шляхом зведення до диз’юнктивної та кон’юнктивної нормальної форми
- •Метод Девіса й Патнема
- •Метод резолюцій
- •Метод двійкових діаграм рішень
- •Приклади застосування методів перевірки тавтологічності та суперечності формул логіки висловлень
- •Мова логіки першого порядку
- •Інтерпретації формул логіки першого порядку
- •Пренексна нормальна форма формул логіки першого порядку
- •Сколемівська стандартна форма формули першого порядку
- •Підстановки та уніфікатори
- •Алгоритм уніфікації
- •Правило резолюції для формул логіки першого порядку
- •Вимоги до оформлення домашньої контрольної роботи
- •Графік виконання домашньої контрольної роботи
- •Порядок виконання домашньої контрольної роботи
Пренексна нормальна форма формул логіки першого порядку
Формула F логіки першого порядку подана (або знаходиться) у пренексній нормальній формі, якщо F має вигляд (Q1х1)…(Qnхn)M, де (Qixi) є (xi) або (xi) (i=1,…,n), а M є формулою, у якій немає кванторів. (Q1x1)…(Qnxn) називається префіксом, M – матрицею формули F.
Наприклад, формула (х)(y)(z)(Q(х,y)R(z)) знаходиться у пренексній нормальній формі, а формула (х)(P(х)(y)(R(y)Q(х,y))) – ні.
Уведемо позначення F[х], щоб відзначити, що формула F має вільну змінну x. Нехай G означає формулу, яка не має змінної х, Q означає або . Наступні пари формул еквівалентні:
(Qх)F[х]G=(Qх)(F[х]G); (Qх)F[х]G=(Qх)(F[х]G); (1)
((x)F[x])=(x)(F[x]); ((x)F[х])=(x)(F[х]). (2)
Нехай F[х] та H[х] – формули, які мають змінну х. Виконуються такі співвідношення:
(x)F[x](x)H[x]=(x)(F[х]H[х]); (х)F[х](х)H[х]=(х)(F[х]H[х]).
Зауважимо, що
(x)F[x](x)H[x] (x)(F[х]H[х]) й
(х)F[х](х)H[х] (х)(F[х]H[х]).
Нехай z – змінна, що не входить у F[x] та H[х]. Тоді
(x)F[x](x)H[x] = (x)F[x](z)H[z] й
(х)F[х](х)H[х] = (х)F[х](z)H[z],
отже, використавши співвідношення (1), маємо
(x)F[x](x)H[x] = (x)(z)(F[х]H[z]),
(х)F[х](х)H[х] = (х)(z)(F[х]H[z]).
У загальному випадку маємо
(Q1x)F[x](Q2x)H[x] = (Q1x)(Q2z)(F[х]H[z]),
(Q1х)F[х](Q2х)H[х] = (Q1х)(Q2z)(F[х]H[z]).
Тут Q1, Q2 – це або , а z не входить в F[х].
Задану формулу першого порядку можна завжди перетворити у пренексну нормальну форму за допомогою процедури, яка наведена нижче.
Перетворення формули у пренексну нормальну форму
Використовуючи закони
F1 F2 = (F1F2) (F2F1),
F1 F2 = F1 F2,
вилучити логічні зв’язки та .
За допомогою законів
(F) = F,
(F1 F2) = F1 F2, (F1 F2) = F1 F2,
((x)F[x])=(x)(F[x]); ((x)F[х])=(x)(F[х])
розмістити знаки заперечення безпосередньо перед атомами.
3. Здійснити перейменування зв’язаних змінних, якщо це необхідно.
4. Використовуючи закони
(Qх)F[х]G=(Qх)(F[х]G), (Qх)F[х]G=(Qх)(F[х]G),
(x)F[x](x)H[x]=(x)(F[х]H[х]),
(х)F[х](х)H[х]=(х)(F[х]H[х]),
(Q1x)F[x](Q2x)H[x] = (Q1x)(Q2z)(F[х]H[z]),
(Q1х)F[х](Q2х)H[х] = (Q1х)(Q2z)(F[х]H[z]),
винести квантори на початок формули.
Побудову пренексної нормальної форми завершено.
Приведемо, наприклад, формулу ((x)F1(x)(x)F2(x)) до пренексної нормальної форми: ((x)F1(x)(x)F2(x)) = ((x)F1(x)(x)F2(x)) = (x)F1(x)(x)F2(x) = (x)F1(x)(x)F2(x) = =(x)F1(x)(z)F2(z) = (x)(z)(F1(x)F2(z)).
Сколемівська стандартна форма формули першого порядку
Нехай формула F знаходиться у пренексній нормальній формі (Q1x1)…(Qnxn)M, де М є кон’юнктивна нормальна форма. Нехай Qi є квантор існування у префіксі (Q1x1)…(Qnxn), 1in. Якщо ліворуч від Qi у префіксі немає жодного квантора загальності, виберемо нову константу с, що не входить у М, замінимо усі входження змінної xi у М на с та викреслимо (Qixi) з префікса. Якщо Qs1,…,Qsm – список усіх кванторів загальності, що знаходяться у префіксі ліворуч від Qi, 1s1s2…smi, виберемо новий m-арний функціональний символ f, що відрізняється від функціональних символів формули М, та замінимо усі xi у М на терм f(xs1,xs2,…,xsm), а (Qixi) викреслимо з префікса. Такі дії виконаємо з усіма кванторами існування у префіксі. Формула, яка буде побудована в результаті, є сколемівська стандартна форма (або коротко стандартна форма) формули F. Константи та функції, що використані для заміни змінних, зв’язаних квантором існування, називаються сколемівськими функціями.
Побудуємо, наприклад, стандартну форму формули
(x1)(x2)(x3)(x4)(x5)(x6)(x7)М(x1,x2,x3,x4,x5,x6,x7).
Оскільки у даній формулі ліворуч від (x1) та (x2) немає кванторів загальності, замінимо змінні x1 та x2 новими константами а та b відповідно, а (x1) та (x2) вилучимо з префікса. Одержимо формулу
(x3)(x4)(x5)(x6)(x7)M(a,b,x3,x4,x5,x6,x7).
Ліворуч від (x5) міститься два квантори загальності, (x3) та (x4), а ліворуч від (x7) – три ((x3), (x4), (x6)), отже замінимо x5 термом f(x3,x4), а x7 – термом h(x3,x4,x6). У результаті маємо стандартну форму даної формули: (x3)(x4)(x6)M(a,b,x3,x4,f(x3,x4),x6,h(x3,x4,x6)).
Оскільки формула F, що знаходиться у стандартній формі, являє собою кнф, якій передує префікс (можливо, порожній), що містить лише квантори загальності, будемо вважати F множиною диз’юнктів, де кожна змінна керована квантором загальності. Надалі будемо користуватися властивістю стандартної форми, яку сформулюємо у вигляді такої теореми.
Теорема 5. Нехай S – множина диз’юнктів, які представляють стандартну форму формули F. Тоді F суперечна тоді й тільки тоді, коли S суперечна.
Зауважимо, що несуперечна формула F та її стандартна форма S не завжди еквівалентні. Нехай, наприклад, F=(x)P(x). Стандартна форма формули F є S=P(a). Розглянемо таку інтерпретацію I з областю D={1,2}: константі a поставимо у відповідність елемент 1 предметної області й покладемо P(1)=0, Р(2)=1. Тоді F істинна при I, але S хибна при I, отже, FS.
Зазначимо також, що формула може мати більше однієї стандартної форми. Звичайно при побудові стандартної форми вибирають якнайпростіші сколемівські функції. Якщо маємо формулу виду F=F1…Fn, то можемо окремо побудувати множини диз’юнктів Si, де Si є стандартною формою формули Fi, i=1,…,n. Нехай S = S1…Sn. Неважко показати, що F суперечна тоді й тільки тоді, коли S суперечна.
