Raw

Лекція 5. Математична логіка

Огляд

Дискретна математика — це передусім наука про строгі міркування: майже кожне твердження цього курсу ми не просто проголошуємо, а доводимо. Але щоб говорити про доведення чесно, треба спершу мати мову, якою можна точно записати самі твердження та правила, за якими з одних тверджень дозволено виводити інші. Такою мовою є математична логіка, а її найпростіший, базовий поверх — логіка висловлювань (пропозиційна логіка) — і є темою цієї лекції.

Логіка висловлювань — це, по суті, та сама двоелементна алгебра, яку ми вивчали в Лекції 3 про булеві операції, але побачена під іншим кутом — під кутом істини та смислу, а не суто символьних перетворень. Там, де в булевій алгебрі стояли біти 11 і 00, тут стоятимуть значення істина (І) і хиба (Х); де там писали операції \cdot і ++, тут писатимуть \wedge («і») та \vee («або»); закони, яким вони підпорядковані (комутативність, дистрибутивність, де Морган), — ті самі. Це не приблизна аналогія, а точна відповідність: логіка висловлювань є двоелементною булевою алгеброю, прочитаною семантично. Тому все, що ви вже вмієте спрощувати в булевих виразах, негайно переноситься сюди.

Навіщо будувати формальну мову для таких буденних слів, як «і», «або», «якщо»? З трьох причин, і кожна — наскрізна тема курсу:

  • Точність. Природна мова багатозначна: «або» буває включним і виключним, «якщо» часто плутають з «тоді й лише тоді». Формальна мова змушує кожне речення мати рівно одну структуру та рівно одне значення істинності за кожної інтерпретації.
  • Механізація. Щойно смисл зведено до скінченного перегляду таблиці, перевірити правильність міркування, коректність схеми чи сумісність обмежень може вже машина. Звідси беруть початок автоматичне доведення теорем, SAT-розв’язувачі та верифікація апаратного й програмного забезпечення.
  • Основа для доведень. Кожне доведення, яке ви писатимете далі, — пряме, від супротивного, за випадками — є дисциплінованим способом установити саме ті смислові зв’язки, які означено тут. Не можна сказати, що доводить доведення, поки не сказано, що означають його твердження.

Про два поверхи логіки. Логіка висловлювань оперує цілими реченнями як неподільними атомами: «Дніпро впадає в Чорне море» — один атом, і його внутрішня будова («Дніпро», «впадає») її не цікавить. Цього замало, щоб виразити міркування на кшталт «усі люди смертні; Сократ — людина; отже, Сократ смертний»: тут суттєве слово «усі» та внутрішня структура «xx — людина». Такі засоби — предикати та квантори ,\forall, \exists — вивчає логіка предикатів у Лекції 6. Ця лекція — необхідний фундамент під неї.

У цьому розділі ми послідовно вводимо поняття висловлення, будуємо алфавіт і зв’язки алгебри висловлювань, означуємо кожну операцію її таблицею істинності, учимося інтерпретувати та формалізувати речення, класифікуємо формули на тавтології, суперечності й нейтральні, означуємо логічний наслідок і, нарешті, переходимо від семантики (істина, таблиці) до синтаксису доведення — правил виводу та числення висловлювань. Кілька ключових фактів (означальні таблиці, теорема про дедукцію, коректність правил відділення й від’ємної форми) ми доводимо.


5.1 Висловлення та їхні значення істинності

Мотивація

Будь-яке міркування складається з тверджень, кожне з яких ми вважаємо або правильним, або неправильним, і сполучників між ними. Щоб міркувати точно, треба спершу відокремити речення, які взагалі можуть бути істинними чи хибними, від тих, до яких поняття істинності незастосовне. Це й робить перше означення.

Означення (висловлення). Висловленням (висловлюванням, англ. statement, proposition) називають розповідне (оповідальне) речення, яке є або істинним, або хибним — але не одночасно і не жодним із двох.

Два можливі значення утворюють крихітну множину значень істинності {істина,хиба}\{\text{істина}, \text{хиба}\}, яку ми позначатимемо {І,Х}\{\text{І}, \text{Х}\} або, у дусі Лекції 3, {1,0}\{1, 0\}. Важливо не чи знаємо ми зараз, яке саме значення має речення, а те, що воно має рівно одне з двох. Речення «існує нескінченно багато простих чисел-близнюків» — цілком правильне висловлення, хоча на час написання цих рядків ніхто не знає, істинне воно чи хибне.

Розгляньмо речення, з яких традиційно починають курс логіки (вони — просто зі слайдів):

  • «Дніпро впадає в Чорне море.» — висловлення; воно істинне.
  • «Дніпро впадає в Азовське море.» — висловлення; воно хибне.
  • «Яке сьогодні число?» — не висловлення: це запитання, йому не можна приписати ні І, ні Х.

Реченнями, що висловленнями не є, зокрема, бувають:

  • запитання — «Котра година?»;
  • накази (спонукання) — «Зачини двері.»;
  • оклики — «Який холод!»;
  • парадоксальні самопосилальні речення — «Це речення хибне.» Якби воно було істинним, то було б хибним, а якби хибним — істинним; йому несуперечливо не можна приписати жодного значення, тож воно взагалі лежить поза межами висловлень. (Це парадокс брехуна; сама потреба обережно виключати такі речення — одна з причин, чому важливий формальний синтаксис.)

Відкриті речення (пропозиційні функції)

Тонший випадок — речення «XX ділиться на 55» зі слайда. Само по собі воно не має сталого значення істинності: воно залежить від XX. Висловленням воно стає лише після того, як XX дістане конкретне значення: для X=15X = 15 — істинне, для X=8X = 8 — хибне.

Означення (відкрите речення). Речення з вільною змінною, значення істинності якого залежить від того, що підставлено замість змінної, називають відкритим реченням (пропозиційною функцією, предикатом).

Логіка висловлювань розглядає лише закриті речення з визначеним значенням; відкриті речення разом із кванторами «для всіх» (\forall) та «існує» (\exists), потрібними, щоб їх «закрити», — предмет Лекції 6.

Приклад 5.1 (класифікація). Визначимо тип кожного речення. (а) «77 — просте число.» (б) «Передайте, будь ласка, сіль.» (в) «n20n^2 \ge 0 для цілого nn.» (г) «Чи йде дощ?» (ґ) «x+3=10x + 3 = 10

Розв’язання. (а) висловлення, істинне. (б) не висловлення (наказ). (в) висловлення, істинне: змінну nn зв’язано зворотом «для цілого nn», тож речення в цілому робить визначене (істинне) твердження. (г) не висловлення (запитання). (ґ) відкрите речення — істинне при x=7x = 7 і хибне інакше; висловленням стає лише після фіксації xx.

Типова помилка (незнання проти відсутності значення). Не плутайте «ми не знаємо значення істинності» з «речення не має значення істинності». Гіпотеза Ґольдбаха — висловлення (рівно одне з двох значень), хоча її статус відкритий. Натомість «x+3=10x+3=10» справді не має значення істинності, доки не задано xx, — це об’єкт іншого роду, відкрите речення.


5.2 Атомарні та складені висловлення

Речення бувають простими й складеними. Просте речення не розкладається на менші висловлення; складене збирають із простих за допомогою сполучників.

Означення (атом). Атом (атомарне, елементарне висловлення) — це просте оповідальне речення, що не містить жодної логічної зв’язки і не розкладається на менші висловлення. Атоми — неподільні «цеглинки» мови; їх позначають пропозиційними змінними: малими p,q,r,s,p, q, r, s, \dots або великими P,Q,R,S,P, Q, R, S, \dots

Означення (складене висловлення). Складеним (молекулярним) висловленням називають висловлення, побудоване з атомів за допомогою логічних зв’язок.

Означальна риса всієї мови вловлюється одним принципом.

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

Це справжнє обмеження, і саме воно робить теорію обчислюваною. Зв’язка «і» дає лише правило комбінування значень; їй байдуже, про що атоми, чи пов’язані вони за змістом, чи один спричиняє інший, чи взагалі йдеться про одне й те саме. Складене «2+2=42+2=4 і Київ — місто» істинне з тієї самої причини, що й «трава зелена і сніг білий»: обидві частини істинні. Природна мова інколи «протягує» додатковий смисл (порядок подій у «вона відчинила двері й вийшла»), але логіка висловлювань свідомо його відкидає.

Приклад 5.2. «Петро запізнювався» — атом, позначмо його PP. «Петро запізнювався і Петро перевищив швидкість» — складене висловлення PQP \wedge Q, де QQ — атом «Петро перевищив швидкість». Ціле речення не несе жодного власного значення понад те, що дають PP, QQ і зв’язка \wedge. (До цього прикладу ми повернемося в §5.7.)


5.3 Алфавіт і зв’язки алгебри висловлювань

Щоб перетворити ці ідеї на числення, зафіксуймо точний алфавіт мови — скінченний набір символів, з яких будують формули.

Означення (алфавіт алгебри висловлювань). Алфавіт складається з:

  • пропозиційних змінних p,q,r,p, q, r, \dots (зліченний запас атомів);
  • логічних зв’язок ¬, , , , \neg,\ \wedge,\ \vee,\ \to,\ \leftrightarrow;
  • допоміжних символів — лівої та правої дужок (( і )).

Логіка висловлювань використовує п’ять стандартних зв’язок. Запереченняунарна (діє на одну формулу); решта чотири — бінарні (сполучають дві).

Зв’язка Символ Читається Значення
Заперечення ¬p\neg p «не pp» інвертує значення
Кон’юнкція pqp \wedge q «pp і qq» істинне, коли істинні обидві
Диз’юнкція pqp \vee q «pp або qq» істинне, коли істинна хоч одна
Імплікація pqp \to q «якщо pp, то qq» хибне лише при p=p=І, q=q=Х
Еквіваленція pqp \leftrightarrow q «pp тоді й лише тоді, коли qq» істинне, коли значення збігаються

Зауваження (інші позначення). Символіка логіки не усталена повністю. На слайдах курсу заперечення записують як !p або p\sim p, еквіваленцію — як \sim чи \Leftrightarrow, імплікацію — як \Rightarrow. У Лекції 3 заперечення позначали рискою p\overline{p}. Ми в цій лекції дотримуємося набору ¬,,,,\neg,\wedge,\vee,\to,\leftrightarrow, але корисно впізнавати всі варіанти. Ще одна корисна зв’язка — виключне «або» pqp \oplus q («рівно одне з двох»), до якого ми повернемося в §5.4.

Термінологія імплікації. У записі pqp \to q висловлення pp називають засновком (антецедентом, умовою), а qqвисновком (консеквентом, наслідком). З однієї імплікації будують ще три формули з тих самих атомів; уміти їх розрізняти конче потрібно:

  • обернена (конверсія): qpq \to p;
  • протилежна (інверсія): ¬p¬q\neg p \to \neg q;
  • контрапозиція (протилежна до оберненої): ¬q¬p\neg q \to \neg p.

Типова помилка (імплікація \ne обернена). Умовне речення не рівносильне ні своїй оберненій, ні протилежній. «Якщо йде дощ, то земля мокра» (pqp \to q) не випливає з «якщо земля мокра, то йшов дощ» (обернена — могли ввімкнути поливалку). Проте воно рівносильне своїй контрапозиції «якщо земля не мокра, то дощу не було» — цей факт ми доведемо в §5.8 і постійно вживатимемо як правило виводу в §5.10.


5.4 Операції та їхні таблиці істинності

Кожну зв’язку означують тим, як вона обчислює значення істинності. Найпрозоріший спосіб задати цю функцію — таблиця істинності: усі можливі набори значень атомів разом зі значенням результату. Наведена нижче таблиця — це означення всіх п’яти операцій (вона ж — таблиця зі слайда «Інтерпретація висловлювань»).

Означальна таблиця істинності п'яти логічних операцій: заперечення, кон'юнкція, диз'юнкція, імплікація, еквіваленція

AA BB ¬A\neg A ABA \wedge B ABA \vee B ABA \to B ABA \leftrightarrow B
Х Х І Х Х І І
Х І І Х І І Х
І Х Х Х І Х Х
І І Х І І І І

Зауваження (порядок рядків). Рядки впорядковано так, що Х передує І, а пари (A,B)(A,B) читаються як двійкові числа з Х=0\text{Х}=0, І=1\text{І}=1, зростаючи: 00,01,10,1100, 01, 10, 11. Годиться будь-який фіксований порядок; важлива лише сталість, і ми дотримуватимемося цього до кінця лекції. Це той самий порядок, у якому в Лекції 3 виписували таблиці булевих функцій.

Прочитаймо кожен стовпчик як означення й водночас коментар до природної мови.

Заперечення ¬A\neg A інвертує значення: істинне робить хибним і навпаки. Природномовні відповідники: «не», «неправильно, що».

Кон’юнкція ABA \wedge B істинна лише тоді, коли істинні обидва члени. Логічно «але» — це теж \wedge: «іде дощ, але світить сонце» — просто кон’юнкція pqp \wedge q. Українське «але» сигналізує про контраст, але істиннісно контрасту не існує.

Диз’юнкція ABA \vee B хибна лише тоді, коли хибні обидва члени; отже, вона включна — істинна й тоді, коли істинні обидва.

Зауваження (включне проти виключного «або»). Українське «або» інколи виключне («суп або салат, але не обидва»). Це вже інша зв’язка — виключне «або» ABA \oplus B, істинне рівно тоді, коли істинний рівно один член. Через основні операції:

AB    (AB)¬(AB)    (A¬B)(¬AB).A \oplus B \;\equiv\; (A \vee B) \wedge \neg(A \wedge B) \;\equiv\; (A \wedge \neg B) \vee (\neg A \wedge B).

Коли меню каже «суп або салат», мають на увазі \oplus; коли стипендію призначають «студентам, що вивчають математику або інформатику», мають на увазі \vee (подвійна спеціалізація теж підходить). Який зміст обрано — питання перекладу, а не логіки.

Імплікація ABA \to B хибна в єдиному випадку — коли засновок AA істинний, а висновок BB хибний; в усіх інших випадках вона істинна. Зокрема, коли засновок AA хибний, імплікація ABA \to B істинна тривіально (пусто-істинна), хай там яке BB: речення «якщо Місяць зроблено із сиру, то 2+2=52+2=5» — істинна імплікація. Імплікація вловлює образ «BB гарантовано щоразу, коли AA», а не «AA спричиняє BB».

Типова помилка (пусто-істинність). Рядок A=A=Х дає AB=A \to B =І незалежно від BB. Студенти часто вважають таку імплікацію «неповною» чи «беззмістовною» — але за означенням вона істинна. Саме цей рядок робить коректним доведення тверджень про порожню множину (як-от A\varnothing \subseteq A в Лекції 1).

Еквіваленція ABA \leftrightarrow B істинна рівно тоді, коли AA і BB мають однакове значення. Її можна розкласти на дві імплікації (це доведемо в §5.8): AB(AB)(BA)A \leftrightarrow B \equiv (A \to B) \wedge (B \to A).

Пріоритет зв’язок

Щоб не громадити дужок, домовляються про пріоритет (від найвищого, що зв’язує найщільніше, до найнижчого):

¬                .\neg \;\succ\; \wedge \;\succ\; \vee \;\succ\; \to \;\succ\; \leftrightarrow .

Наприклад, ¬pqr\neg p \vee q \to r читається як ((¬p)q)r((\neg p) \vee q) \to r. Бінарні зв’язки за домовленістю асоціюють праворуч, тож pqrp \to q \to r означає p(qr)p \to (q \to r).

Типова помилка (асоціативність \to). Праворучна асоціація — це домовленість про скорочення, а не логічний закон: формули (pq)r(p \to q) \to r і p(qr)p \to (q \to r) не рівносильні (їхні таблиці різняться). У сумніві — ставте дужки.


5.5 Аналоги природної мови

Найперша практична навичка логіки — упізнавати, яку зв’язку ховає той чи той зворот живої мови. Наведена таблиця (зі слайда «Аналоги природної мови») зіставляє кожну операцію з типовими українськими зворотами.

Таблиця відповідності логічних операцій зворотам природної мови

Операція Звороти природної мови
Еквіваленція \leftrightarrow еквівалентно; рівносильно; тоді й тільки тоді; якщо і тільки якщо; необхідно й достатньо
Імплікація \to якщо …, то …; тільки якщо; звідси; достатньо, щоб; необхідно, щоб
Кон’юнкція \wedge і; та; а також; обидва; хоча; але; проте
Диз’юнкція \vee або; чи; один із двох; принаймні одне
Заперечення ¬\neg не; неправильно, що; неправда, що

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

  • «pp тільки якщо qq» — це pqp \to q, а не qpq \to p. Зворот каже, що pp може справдитися лише за обставин, коли справджується й qq.
  • «pp, якщо qq» — навпаки, qpq \to p.
  • «qq необхідно для pp» — це pqp \to q; «pp достатньо для qq» — теж pqp \to q.
  • «AA, якщо не BB» (зворот «AA, окрім випадку BB») — це ¬BA\neg B \to A, рівносильно BAB \vee A.
  • «ні pp, ні qq» — це ¬p¬q\neg p \wedge \neg q, рівносильно ¬(pq)\neg(p \vee q).

Приклад 5.3 (місце заперечення). Розгляньмо два схожі звороти: «не обидва pp і qq» =¬(pq)= \neg(p \wedge q) — хоч одне хибне; «і не pp, і не qq» =¬p¬q= \neg p \wedge \neg q — хибні обидва. Це різні формули: перша істинна при p=p=І, q=q=Х, а друга — ні. За законом де Моргана перша дорівнює ¬p¬q\neg p \vee \neg q — зверніть увагу на «або».

Типова помилка (підміна «і»↔«або» після «не»). У побутовій мові кажуть «не можна мати й тістечко, і морозиво», маючи на увазі «щонайбільше одне» — логічно ¬(cm)\neg(c \wedge m), тобто ¬c¬m\neg c \vee \neg m. Українське «і» лишається, а правильний переклад містить «або». Завжди перекладайте смисл, а закон де Моргана узгодить його зі словами.


5.6 Формули та їхня інтерпретація

Правильно побудовані формули

Перш ніж питати, що формула означає, треба точно сказати, які саме рядки символів є формулами. Це роблять рекурсивно — так само, як у Лекції 1 рекурсивно задавали множини.

Означення (правильно побудована формула). Правильно побудовані формули (ППФ, англ. well-formed formulas) логіки висловлювань означують рекурсивно:

  1. (база) кожна пропозиційна змінна p,q,r,p, q, r, \dots є ППФ (атом);
  2. (заперечення) якщо φ\varphi — ППФ, то (¬φ)(\neg \varphi) — ППФ;
  3. (бінарні зв’язки) якщо φ\varphi і ψ\psi — ППФ, то (φψ)(\varphi \wedge \psi), (φψ)(\varphi \vee \psi), (φψ)(\varphi \to \psi), (φψ)(\varphi \leftrightarrow \psi) — ППФ;
  4. (замикання) нічого іншого ППФ не є.

Отже, ((pq)(¬r))((p \to q) \wedge (\neg r)) — правильно побудована формула, а рядки pqp\,q\to,   p\;\wedge p, (pq)(p \to \to q) — ні. На практиці зовнішні дужки та дужки навколо заперечення опускають, а решту відновлюють за пріоритетом зі §5.4; тож зазвичай пишуть просто (pq)¬r(p \to q) \wedge \neg r.

Дерево формули та головна зв’язка

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

Дерево формули (P → Q) → ¬S із головною зв'язкою (другою імплікацією) у корені

Приклад 5.4. У формулі (PQ)¬S(P \to Q) \to \neg S головна зв’язка — друга імплікація; її ліве піддерево — PQP \to Q, праве — ¬S\neg S. Дерево:

           →            ← головна зв'язка
         /   \
        →     ¬
       / \     \
      P   Q     S

Порівняйте: у ¬(pq)\neg(p \wedge q) головна зв’язка — ¬\neg, застосоване до всієї кон’юнкції; а в ¬pq\neg p \wedge q головна зв’язка — \wedge (бо ¬\neg зв’язує щільніше), з лівим піддеревом ¬p\neg p і правим qq.

Інтерпретація та обчислення таблиці

Означення (інтерпретація). Інтерпретацією (оцінкою, набором значень) називають функцію

v:{пропозиційні змінні}{І,Х},v : \{\text{пропозиційні змінні}\} \to \{\text{І}, \text{Х}\},

що приписує значення істинності кожному атому.

Оскільки зв’язки істиннісно функційні, інтерпретація атомів однозначно змушує значення кожної побудованої з них формули: обчислюємо значення знизу вгору деревом формули, від листків до кореня, застосовуючи на кожному вузлі означальну таблицю зі §5.4. Формула з nn різними атомами має рівно 2n2^n інтерпретацій (кожен атом незалежно набуває двох значень) — це і є рядки її таблиці істинності.

Як будувати таблицю складеної формули. Заводять по стовпчику на кожну підформулу, упорядковуючи їх за деревом (спершу атоми, останньою — головна зв’язка); кожен стовпчик обчислюють з попередніх за базовою таблицею.

Приклад 5.5 (дві змінні). Побудуємо таблицю для (pq)¬q(p \to q) \wedge \neg q (головна зв’язка — \wedge):

pp qq pqp \to q ¬q\neg q (pq)¬q(p \to q) \wedge \neg q
Х Х І І І
Х І І Х Х
І Х Х І Х
І І І Х Х

Виділений останній стовпчик — значення всієї формули за кожної з 22=42^2 = 4 інтерпретацій. Формула істинна лише при p=q=Хp = q = \text{Х}.

Приклад 5.6 (три змінні, вісім рядків). Побудуємо таблицю формули (PQ)¬S(P \to Q) \to \neg S — тієї, чиє дерево ми малювали в Прикладі 5.4. Проміжні стовпчики — PQP \to Q і ¬S\neg S; головна зв’язка — зовнішня імплікація.

PP QQ SS PQP \to Q ¬S\neg S (PQ)¬S(P \to Q) \to \neg S
Х Х Х І І І
Х Х І І Х Х
Х І Х І І І
Х І І І Х Х
І Х Х Х І І
І Х І Х Х І
І І Х І І І
І І І І Х Х

Формула хибна рівно в тих рядках, де S=S=І, а імплікація PQP \to Q істинна. Мішаний стовпчик означає, що формула нейтральна (див. §5.8).

Побудова таблиці істинності складеної формули (P → Q) → ¬S за проміжними стовпчиками


5.7 Формалізація висловлювань

Формалізація (символізація, переклад) — це заміна атомів змінними, а сполучникових слів — символами. Це місток між живою мовою й обчислюваною логікою.

Метод складається з трьох кроків:

  1. Виокремити атомарні висловлення й приписати кожному змінну. За змоги обирайте атоми стверджувальними (нехай pp = «двері відчинені», а не «двері зачинені»), щоб заперечення проступали явно.
  2. Знайти сполучникові слова («і», «або», «якщо…, то», «не», «тільки якщо», …) та зіставити їм зв’язки за таблицею §5.5.
  3. Визначити групування (область дії зв’язок) — саме цей крок вимагає розуміння змісту — і розставити дужки.

Формалізація речення про Петра: виокремлення атомів P, Q, S та побудова формули (P → Q) → ¬S

Приклад 5.7 (речення про Петра — зі слайда). Формалізуймо речення «Оскільки Петро запізнювався, він перевищив швидкість і тому не є слушним водієм.»

Атоми:

  • PP — «Петро запізнювався»;
  • QQ — «Петро перевищив швидкість»;
  • SS — «Петро є слушним (розважливим) водієм».

Речення стверджує: якщо (запізнення спричинило перевищення швидкості, тобто PQP \to Q), то Петро не є слушним водієм (¬S\neg S). Формалізація:

(PQ)¬S.(P \to Q) \to \neg S.

Це саме та формула, дерево і таблицю якої ми вже розібрали у Прикладах 5.4 і 5.6.

Переклад не механічний: слова-підказки скеровують його, але область дії та групування потребують читання наміру речення. Особливо підступне місце «не».

Приклад 5.8 (звороти «тільки якщо», «якщо і тільки якщо»). Нехай ee = «відвідувач заходить», tt = «відвідувач має квиток». «Заходити можна, тільки якщо є квиток» =et= e \to t. «Заходити можна тоді й лише тоді, коли є квиток» =et= e \leftrightarrow t. Друге речення сильніше: воно додатково обіцяє вхід кожному з квитком.

Приклад 5.9 (складене міркування у формулу). «Якщо програма компілюється й тести проходять, то ми розгортаємо реліз; ми не розгорнули; тести пройшли. Отже, програма не скомпілювалася.» Атоми cc = «компілюється», tt = «тести проходять», dd = «розгортаємо». Засновки: (ct)d,  ¬d,  t(c \wedge t) \to d,\; \neg d,\; t. Висновок: ¬c\neg c. Чи правильне це міркування — з’ясуємо в §5.9.


5.8 Типи формул: тавтологія, суперечність, нейтральна

Дивлячись лише на останній стовпчик таблиці істинності формули, кожну формулу відносять рівно до одного з трьох класів (це поділ зі слайда «Типи формул»).

Означення.

  • Тотожно істинна формула (тавтологія, загальнозначуща) — істинна за кожної інтерпретації (останній стовпчик суцільно І). Позначають φ\models \varphi. Приклад: p¬pp \vee \neg p (закон виключеного третього).
  • Тотожно хибна формула (суперечність, суперечлива, нездійсненна) — хибна за кожної інтерпретації (останній стовпчик суцільно Х). Приклад: p¬pp \wedge \neg p.
  • Нейтральна формула (незагальнозначуща, несуперечлива, виконувана, але не тавтологія) — істинна за одних інтерпретацій і хибна за інших. Приклад: pqp \to q, а також (PQ)¬S(P \to Q) \to \neg S із Прикладу 5.6.

Класифікація формул за останнім стовпчиком таблиці: тавтологія (усі І), суперечність (усі Х), нейтральна (мішана)

Ці класи розбивають множину всіх формул: кожна формула належить рівно до одного з них. Пов’язані вони запереченням.

Твердження 5.10 (двоїстість тавтологія — суперечність). Формула φ\varphi — тавтологія тоді й лише тоді, коли ¬φ\neg\varphi — суперечність; і φ\varphi — суперечність тоді й лише тоді, коли ¬φ\neg\varphi — тавтологія.

Доведення. За означенням заперечення для кожної інтерпретації vv маємо: ¬φ\neg\varphi істинне при vv     \iff φ\varphi хибне при vv. Тому: φ\varphi — тавтологія     \iff φ\varphi істинне за всіх vv     \iff ¬φ\neg\varphi хибне за всіх vv     \iff ¬φ\neg\varphi — суперечність. Друге твердження випливає із застосування першого до ¬φ\neg\varphi й закону подвійного заперечення ¬¬φφ\neg\neg\varphi \equiv \varphi. \blacksquare

Зауваження (виконуваність). Формулу називають виконуваною, якщо хоч одна інтерпретація робить її істинною (останній стовпчик містить хоч одне І). Отже, виконувані — це тавтології та нейтральні формули разом; невиконувані — точно суперечності. Задача «чи виконувана дана формула?» називається задачею SAT і є однією з центральних у теорії складності: це перша задача, для якої доведено NP-повноту (теорема Кука — Левіна, 1971). Таблиця істинності завжди її розв’язує, але має 2n2^n рядків, тож для великих nn потрібні розумніші SAT-розв’язувачі.

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

Приклад 5.11 (закон контрапозиції — тавтологія). Покажемо, що (pq)(¬q¬p)(p \to q) \leftrightarrow (\neg q \to \neg p) — тавтологія.

pp qq pqp \to q ¬q¬p\neg q \to \neg p (pq)(¬q¬p)(p \to q) \leftrightarrow (\neg q \to \neg p)
Х Х І І І
Х І І І І
І Х Х Х І
І І І І І

Останній стовпчик суцільно І, отже, формула — тавтологія. Заразом два внутрішні стовпчики збіглися: це означає, що pq¬q¬pp \to q \equiv \neg q \to \neg p (рівносильність імплікації та її контрапозиції — той факт, який ми обіцяли у §5.3).

Зауваження (зв’язок із Лекцією 3). Рівносильність формул φψ\varphi \equiv \psi (однакові останні стовпчики) — це рівно те саме, що рівність булевих функцій із Лекції 3, з І/Х\text{І}/\text{Х} замість 1/01/0. Усі закони булевої алгебри (комутативність, дистрибутивність, де Морган, поглинання, pq¬pqp \to q \equiv \neg p \vee q) виконуються й тут; відображення І1, Х0\text{І}\mapsto 1,\ \text{Х}\mapsto 0 — ізоморфізм двоелементної булевої алгебри й алгебри висловлювань. Тому спрощувати логічні формули можна тими самими перетвореннями, що й булеві вирази.


5.9 Логічний наслідок

Тепер точно означимо, що означає «висновок випливає із засновків» — центральне поняття правильного міркування (слайд «Логічний наслідок»).

Означення (логічний наслідок, семантичне слідування). Формула BB є логічним наслідком формул A1,,AnA_1, \dots, A_n, що записують

A1,,AnB,A_1, \dots, A_n \models B,

якщо кожна інтерпретація, яка робить істинними всі засновки A1,,AnA_1, \dots, A_n, робить істинним і BB. Рівносильно: немає жодної інтерпретації (жодного контрприкладу), що справджує всі засновки, але спростовує BB.

Зокрема, за одного засновка ABA \models B означає «кожна модель AA є моделлю BB». Наступна теорема зводить будь-яке питання про наслідок до питання про тавтологію — і саме тому єдиної процедури (таблиці істинності) досить, щоб перевіряти правильність міркувань. Це і є ті «тотожно істинні формули ABA \to B та A1AnBA_1 \wedge \dots \wedge A_n \to B», що фігурують на слайді.

Теорема 5.12 (про дедукцію). Нехай A1,,AnA_1, \dots, A_n і BB — формули. Тоді

A1,,AnBформула (A1A2An)B — тавтологія.A_1, \dots, A_n \models B \quad\Longleftrightarrow\quad \text{формула } (A_1 \wedge A_2 \wedge \dots \wedge A_n) \to B \text{ — тавтологія.}

Доведення. Позначмо Φ=A1An\Phi = A_1 \wedge \dots \wedge A_n. Для будь-якої інтерпретації vv маємо: Φ\Phi істинне при vv     \iff vv справджує всі засновки.

(\Rightarrow) Нехай A1,,AnBA_1, \dots, A_n \models B; візьмемо довільну vv. Якщо Φ\Phi хибне при vv, то імплікація ΦB\Phi \to B істинна (хибний засновок). Якщо ж Φ\Phi істинне при vv, то vv справджує всі засновки, тож за означенням наслідку BB істинне при vv, і знову ΦB\Phi \to B істинне. Отже, ΦB\Phi \to B істинна за кожної vv — це тавтологія.

(\Leftarrow) Нехай ΦB\Phi \to B — тавтологія; нехай vv справджує всі засновки, тобто Φ\Phi істинне при vv. Оскільки імплікація ΦB\Phi \to B істинна, а її засновок істинний, то істинним мусить бути й висновок: BB істинне при vv. Отже, кожна модель засновків є моделлю BB, тобто A1,,AnBA_1, \dots, A_n \models B. \blacksquare

Перевірка правильності таблицею. Щоб перевірити A1,,AnBA_1, \dots, A_n \models B, будують одну таблицю й переглядають лише рядки, де істинні всі засновки; міркування правильне тоді й лише тоді, коли в кожному такому рядку істинний і висновок.

Приклад 5.13 (правило відділення — правильне). «Якщо йде дощ, то земля мокра. Іде дощ. Отже, земля мокра.» Нехай pp = «іде дощ», qq = «земля мокра». Засновки pq,  pp \to q,\; p; висновок qq.

pp qq pqp \to q pp qq
Х Х І Х Х
Х І І Х І
І Х Х І Х
І І І І І

Обидва засновки істинні лише в останньому рядку, і там висновок qq теж істинний. Контрприкладу немає \Rightarrow міркування правильне. Це — modus ponens (§5.10).

Приклад 5.14 (ствердження висновку — неправильне). «Якщо йде дощ, то земля мокра. Земля мокра. Отже, іде дощ.» Засновки pq,  qp \to q,\; q; висновок pp. У рядку p=p=Х, q=q=І обидва засновки істинні (pq=p \to q =І, q=q =І), а висновок p=p =Х. Це контрприклад, тож {pq, q}⊭p\{p \to q,\ q\} \not\models p — міркування неправильне, попри поверхову схожість із Прикладом 5.13. (Це поширена хиба «ствердження консеквента».)

Приклад 5.15 (повернення до релізу з Прикладу 5.9). Засновки (ct)d,  ¬d,  t(c \wedge t) \to d,\; \neg d,\; t; висновок ¬c\neg c. Припустимо, всі засновки істинні: ¬d\neg d дає d=d=Х; tt дає t=t=І. Якби cc було І, то ct=c \wedge t =І, і перший засновок змусив би d=d=І — суперечність із d=d=Х. Отже, c=c=Х, тобто ¬c=\neg c=І. Кожна модель засновків справджує висновок — міркування правильне. За Теоремою 5.12 це те саме, що тавтологічність формули ((ct)d)¬dt¬c\big((c \wedge t) \to d\big) \wedge \neg d \wedge t \to \neg c.


5.10 Дедуктивний висновок і правила виводу

Досі ми обчислювали істинність (це семантика: таблиці, \models). Тепер перейдемо до виведення — до синтаксису доведення, де формули не «істинні» чи «хибні», а механічно перетворюються за правилами, наче ходи у грі. Це і є дедуктивний висновок зі слайдів.

Означення (дедуктивний висновок, формальне виведення). Виведенням формули BB із засновків Γ={A1,,An}\Gamma = \{A_1, \dots, A_n\} (записують ΓB\Gamma \vdash B) називають скінченний занумерований список формул, що закінчується на BB, у якому кожен рядок — це або засновок, або результат застосування правила виводу до попередніх рядків. Кожен рядок супроводжують обґрунтуванням: назвою правила й номерами використаних рядків.

Знак \vdash («виводиться», синтаксичне поняття) — двійник знака \models («випливає», семантичне поняття). Найважливіша ідея лекції:

Кожне правило виводу — це тавтологія в іншому вбранні. Правило «з A1,,AnA_1, \dots, A_n вивести BB» коректне (сумлінне) рівно тоді, коли імплікація A1AnBA_1 \wedge \dots \wedge A_n \to B — тавтологія (Теорема 5.12).

Через цю відповідність достатньо один раз пересвідчитися (таблицею чи алгеброю), що певна імплікація — тавтологія, і далі можна завжди вживати відповідне правило як дозвіл дописати BB під засновками потрібного вигляду, хай там що конкретно означають літери. Істина передається від засновків до висновку.

Наведена таблиця містить стандартні пропозиційні правила зі слайда «Правила дедуктивних висновків». Середній стовпчик дає назви введення/видалення (українська традиція), останній — тавтологію-гаранта; будь-яку з них можна перевірити таблицею істинності.

Таблиця правил виводу: назва, схема «засновки ⊢ висновок» та тавтологія-гарант

Правило Засновки Висновок Тавтологія-гарант
Введення диз’юнкції (приєднання) AA ABA \vee B A(AB)A \to (A \vee B)
Введення кон’юнкції (об’єднання) A,  BA,\; B ABA \wedge B (AB)(AB)(A \wedge B) \to (A \wedge B)
Видалення диз’юнкції (диз’юнктивний силогізм) AB,  ¬AA \vee B,\; \neg A BB ((AB)¬A)B\big((A \vee B) \wedge \neg A\big) \to B
Видалення кон’юнкції (спрощення) ABA \wedge B AA (AB)A(A \wedge B) \to A
Контрапозиція імплікації ABA \to B ¬B¬A\neg B \to \neg A (AB)(¬B¬A)(A \to B) \leftrightarrow (\neg B \to \neg A)
Правило відділення (modus ponens) A,  ABA,\; A \to B BB (A(AB))B\big(A \wedge (A \to B)\big) \to B
Від’ємна форма відділення (modus tollens) AB,  ¬BA \to B,\; \neg B ¬A\neg A ((AB)¬B)¬A\big((A \to B) \wedge \neg B\big) \to \neg A
Гіпотетичний силогізм AB,  BCA \to B,\; B \to C ACA \to C ((AB)(BC))(AC)\big((A \to B) \wedge (B \to C)\big) \to (A \to C)

Кілька зауваг про найважливіші правила.

  • Правило відділення (A, ABBA,\ A \to B \therefore B) — робоча конячка всіх доведень; його звуть «відділенням», бо воно «відділяє» BB від імплікації. Майже кожне пряме доведення — це ланцюжок відділень.
  • Від’ємна форма відділення (modus tollens) поширює хибність назад: якщо висновок хибний, то й засновок мусить бути хибним. Це двигун доведення контрапозицією.
  • Видалення диз’юнкції (диз’юнктивний силогізм) — усунення варіантів: «це AA або BB; це не AA; отже, BB».
  • Введення кон’юнкції має «тривіальну» тавтологію-гарант (AB)(AB)(A \wedge B) \to (A \wedge B) — вона істинна вже тому, що будь-яка імплікація виду XXX \to X є тавтологією; правило просто дозволяє з двох окремо доведених формул скласти їхню кон’юнкцію.

Доведімо коректність двох центральних правил безпосередньо — таблицею істинності.

Твердження 5.16 (коректність правила відділення). Формула (A(AB))B\big(A \wedge (A \to B)\big) \to B — тавтологія.

Доведення.

AA BB ABA \to B A(AB)A \wedge (A \to B) (A(AB))B\big(A \wedge (A \to B)\big) \to B
Х Х І Х І
Х І І Х І
І Х Х Х І
І І І І І

Останній стовпчик суцільно І. Зауважте: єдиний рядок, де засновок A(AB)A \wedge (A \to B) істинний, — останній, і там BB теж істинне, як і провіщає Теорема 5.12. \blacksquare

Твердження 5.17 (коректність від’ємної форми, modus tollens). Формула ((AB)¬B)¬A\big((A \to B) \wedge \neg B\big) \to \neg A — тавтологія.

Доведення.

AA BB ABA \to B ¬B\neg B (AB)¬B(A \to B) \wedge \neg B ¬A\neg A ціле \to
Х Х І І І І І
Х І І Х Х І І
І Х Х І Х Х І
І І І Х Х Х І

Останній стовпчик суцільно І, тож правило коректне. Єдиний рядок з істинним засновком — перший, і там ¬A\neg A істинне. \blacksquare

Зібравши правила разом, будують виведення. Кожен рядок обґрунтовано якимось правилом із таблиці, тож остання формула вважається доведеною із засновків.

Приклад 5.18 (повне виведення). Покажемо, що {pq,  qr,  ¬r,  ps}s\{\,p \to q,\ \ q \to r,\ \ \neg r,\ \ p \vee s\,\} \vdash s.

Формула Обґрунтування
1 pqp \to q засновок
2 qrq \to r засновок
3 ¬r\neg r засновок
4 psp \vee s засновок
5 prp \to r гіпотетичний силогізм, 1, 2
6 ¬p\neg p від’ємна форма відділення (modus tollens), 5, 3
7 ss видалення диз’юнкції, 4, 6

Кожен крок дозволено правилом, тож рядок 7 установлено: ss випливає з чотирьох засновків. \blacksquare

Типова помилка (порядок і точність збігу). Рядок можна обґрунтовувати лише рядками вище нього. І правило мусить збігатися зі схемою точно: щоб застосувати відділення, на попередніх рядках потрібні і AA, і ціла імплікація ABA \to B; мати AA та BAB \to A — не підстава ні для чого.


5.11 Правило підстановки

Крім правил, що комбінують цілі формули, потрібне правило, яке дозволяє конкретизувати доведену схему — підставити замість атома довільну формулу (слайд «Правило підстановки»).

Означення (правило підстановки). Нехай F1F_1 — формула логіки висловлювань, а AAатомарна формула (пропозиційна змінна), що входить у F1F_1; запишімо F1F_1 як F1(A)F_1(A), щоб підкреслити входження AA. Нехай F2F_2 — довільна формула. Тоді F1(F2)F_1(F_2) — формула, отримана заміною всіх входжень AA у F1F_1 на F2F_2. Правило: якщо F1(A)F_1(A) — тавтологія (теорема числення), то й F1(F2)F_1(F_2) — тавтологія (теорема).

Ключове слово — «всіх»: підстановка має бути однорідною.

Приклад 5.19. З тавтології A¬AA \vee \neg A (закон виключеного третього), підставивши A:=(pq)A := (p \wedge q), дістаємо тавтологію (pq)¬(pq)(p \wedge q) \vee \neg(p \wedge q).

Типова помилка (неоднорідна підстановка). Заміна лише деяких входжень руйнує тавтологічність. З тавтології AAA \to A, замінивши тільки перше AA на pqp \wedge q, дістанемо (pq)A(p \wedge q) \to A — а це вже не тавтологія (хибна при p=q=p=q=І, A=A=Х).

Зауваження (підстановка проти заміни рівносильним). Розрізняйте два різні правила. Правило підстановки (тут) замінює атом AA на довільну формулу F2F_2 і зберігає тавтологічність. Правило заміни (яким ми користувалися, спрощуючи булеві вирази в Лекції 3) замінює підформулу на рівносильну їй і зберігає рівносильність усієї формули. Перше конкретизує загальний закон; друге переписує формулу, не змінюючи її істиннісного стовпчика.


5.12 Числення висловлювань

Зібравши мову (§5.3, §5.6), поняття тавтології (§5.8) та правила виводу (§5.10–5.11), ми можемо описати логіку висловлювань як формальне числення (слайди «Обчислення висловлювань»). Це суто синтаксичний погляд: теореми породжують маніпуляцією символами, не звертаючись до значень істинності.

Означення (числення висловлювань). Численням висловлювань називають трійку:

  • Мова — множина всіх правильно побудованих формул логіки висловлювань (§5.6).
  • Аксіоми — обрана множина загальнозначущих (тотожно істинних) формул, узятих за відправні точки.
  • Правила виводу — закони, за якими з наявних формул дістають нові.

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

Один із класичних варіантів — числення гільбертівського типу над зв’язками {¬,}\{\neg, \to\} (решту зв’язок уводять як скорочення: pq:=¬pqp \vee q := \neg p \to q, pq:=¬(p¬q)p \wedge q := \neg(p \to \neg q) тощо). Його три схеми аксіом:

A1:A(BA),\textbf{A1:}\quad A \to (B \to A),

A2:(A(BC))((AB)(AC)),\textbf{A2:}\quad \big(A \to (B \to C)\big) \to \big((A \to B) \to (A \to C)\big),

A3:(¬B¬A)(AB),\textbf{A3:}\quad (\neg B \to \neg A) \to (A \to B),

а правил виводу лише два — правило відділення (modus ponens) та правило підстановки (§5.10–5.11). Саме така мінімальна конфігурація стоїть на слайді-прикладі: мова над {І,Х}\{\text{І}, \text{Х}\}, аксіоми — загальнозначущі формули, правила висновку — відділення й підстановка.

Приклад 5.20 (виведення тотожності AAA \to A). Формула AAA \to A очевидно загальнозначуща, але покажемо, що вона — теорема числення, тобто виводиться з аксіом самими правилами.

Формула Обґрунтування
1 (A((AA)A))((A(AA))(AA))\big(A \to ((A \to A) \to A)\big) \to \big((A \to (A \to A)) \to (A \to A)\big) A2, підстановка B:=AA, C:=AB := A \to A,\ C := A
2 A((AA)A)A \to \big((A \to A) \to A\big) A1, підстановка B:=AAB := A \to A
3 (A(AA))(AA)\big(A \to (A \to A)\big) \to (A \to A) відділення, 1, 2
4 A(AA)A \to (A \to A) A1, підстановка B:=AB := A
5 AAA \to A відділення, 3, 4

Отже, AA\vdash A \to A. \blacksquare

Чому це числення «правильне»? Дві глибокі метатеореми пов’язують синтаксис (\vdash) із семантикою (\models):

  • Коректність (несуперечність): якщо φ\vdash \varphi, то φ\models \varphi — з аксіом правилами не вивести нічого, крім тавтологій (числення не бреше).
  • Повнота (теорема Поста, 1921, для логіки висловлювань): якщо φ\models \varphi, то φ\vdash \varphi — кожну тавтологію можна вивести (правил досить).

Разом вони означають, що для логіки висловлювань \vdash і \models збігаються: вивідність і загальнозначущість — те саме відношення, до якого підходять із двох боків (семантичного й синтаксичного). Саме тому правила виводу зі §5.10 водночас надійні й достатні для всіх семантичних фактів цієї лекції. (Доведення обох метатеорем виходить за межі курсу.)

Історична довідка. Алгебраїчне трактування логіки започаткував Джордж Буль («Математичний аналіз логіки», 1847), звівши міркування до обчислень над 00 і 11 — звідси й «булева алгебра» Лекції 3. Оґастес де Морґан, його сучасник, дав закони двоїстості. Строгу формальну мову з поняттям правильно побудованої формули запровадив Ґотлоб Фреґе (Begriffsschrift, 1879). Таблицю істинності як систематичний засіб незалежно ввели Людвіг Вітґенштайн (Tractatus, 1921) і Еміль Пост (1921); Пост також довів повноту числення висловлювань. Аксіоматичні числення гільбертівського типу постали в програмі Давида Гільберта (1920-ті), яку 1931 року обмежили теореми Курта Ґеделя про неповноту — але для логіки висловлювань повнота зберігається цілком.


Застосування у видавництві та поліграфії

Логіка висловлювань — це мова умов, перевірок і автоматики, тож вона прямо описує задачі фаху:

  • Передпольотні перевірки (preflight). Придатність файлу до друку — це велика кон’юнкція умов: «роздільність достатня \wedge кольори у CMYK \wedge є припуски під обріз \wedge шрифти вбудовано». Файл проходить перевірку тоді й лише тоді, коли істинна вся формула; за законом де Моргана її заперечення (список помилок) — це диз’юнкція окремих порушень.
  • Умовна логіка у препресі та шаблонах. Правила накладання фарб, керування оверпринтом, змінні дані у персоналізованому друку задають імплікаціями «якщо поле порожнє, то приховати блок» (p¬qp \to \neg q); формалізація (§5.7) прибирає двозначність природномовного технічного завдання.
  • Логічні вентилі RIP та растрування. Растровий процесор і кольороподіл — це, по суті, булеві функції над пікселями (маска шару, треппінг), тобто ті самі ,,¬\wedge, \vee, \neg з Лекції 3, прочитані як висловлення «піксель належить формі».
  • Автоматичне міркування про коректність. Перевірка, що дві версії макета еквівалентні (дають той самий друкований результат), — це питання рівносильності формул; а перевірка сумісності набору вимог замовника — це задача виконуваності (SAT) зі §5.8.
  • Валідні висновки в редакційних правилах. Ланцюжки правил стилю («якщо це цитата, то курсив; це не курсив; отже, це не цитата») — це modus tollens; уміння відрізнити його від хибного «ствердження висновку» (Приклад 5.14) убезпечує від псевдологічних приписів.

Підсумок

  • Висловлення — розповідне речення з визначеним значенням істинності зі {І,Х}\{\text{І}, \text{Х}\}. Запитання, накази, оклики, парадокси та відкриті реченняXX ділиться на 55») висловленнями не є.
  • Атоми — неподільні прості речення (пропозиційні змінні); складені висловлення будують зв’язками ¬,,,,\neg, \wedge, \vee, \to, \leftrightarrow і вони істиннісно функційні: значення залежить лише від значень атомів і зв’язок.
  • Кожну операцію означує таблиця істинності. Ключові факти: \vee включне; ABA \to B хибне лише при A=A=І, B=B=Х (пусто-істинне при A=A=Х); ABA \to B рівносильне своїй контрапозиції, але не оберненій чи протилежній.
  • Звороти живої мови зіставляють зі зв’язками (аналоги природної мови); «тільки якщо» == \to, «тоді й лише тоді» == \leftrightarrow, «ні…, ні…» =¬()= \neg(\cdot \vee \cdot).
  • ППФ означують рекурсивно; пріоритет ¬\neg \succ \wedge \succ \vee \succ \to \succ \leftrightarrow і дужки задають єдине дерево формули з головною зв’язкою. Інтерпретація атомів однозначно змушує значення формули; таблиця має 2n2^n рядків.
  • Формалізація — переклад речення у формулу (приклад про Петра: (PQ)¬S(P \to Q) \to \neg S).
  • Кожна формула — тавтологія (тотожно істинна), суперечність (тотожно хибна) або нейтральна (виконувана, але не тавтологія).
  • Логічний наслідок A1,,AnBA_1, \dots, A_n \models B: кожна модель засновків є моделлю висновку; за теоремою про дедукцію це рівносильне тавтологічності A1AnBA_1 \wedge \dots \wedge A_n \to B.
  • Правила виводу — тавтології у вбранні схем: введення/видалення \wedge і \vee, контрапозиція, правило відділення (modus ponens), від’ємна форма (modus tollens), гіпотетичний силогізм. Правило підстановки замінює атом довільною формулою (однорідно!) зі збереженням тавтологічності.
  • Числення висловлювань = мова + аксіоми + правила виводу; для логіки висловлювань синтаксична вивідність \vdash і семантичне слідування \models збігаються (коректність і повнота).

Вправи

Для розігріву

  1. Визначте, які з речень є висловленнями, а для висловлень укажіть значення істинності, якщо воно відоме: (а) «1313 — просте число»; (б) «Розв’яжіть рівняння x2=4x^2 = 4»; (в) «x2=4x^2 = 4»; (г) «Кожне парне число, більше за 22, є сумою двох простих»; (ґ) «Яка гарна обкладинка!».
  2. Побудуйте таблицю істинності формули p(q¬p)p \to (q \vee \neg p) і класифікуйте її (тавтологія / суперечність / нейтральна).
  3. Заперечте, оберніть, візьміть протилежну та контрапозицію до речення «Якщо число ділиться на 66, то воно ділиться на 33». Яка з чотирьох формул гарантовано має те саме значення істинності, що й початкова?

Стандартні

  1. Розставте всі дужки за пріоритетом і вкажіть головну зв’язку: (а) ¬pqr\neg p \vee q \to r; (б) p¬qrsp \wedge \neg q \leftrightarrow r \vee s; (в) ¬(pq)r\neg(p \to q) \wedge r.
  2. Формалізуйте, увівши позначення атомів: (а) «Я піду на пробіжку, якщо не піде сніг»; (б) «Увійти можна тільки якщо є перепустка»; (в) «Не працює ні принтер, ні сканер».
  3. Побудуйте таблицю істинності формули (pq)(pq)(p \leftrightarrow q) \to (p \wedge q) і класифікуйте її. За яких інтерпретацій вона хибна?
  4. Доведіть таблицею істинності коректність гіпотетичного силогізму, тобто що ((AB)(BC))(AC)\big((A \to B) \wedge (B \to C)\big) \to (A \to C) — тавтологія.
  5. Перевірте, чи правильне міркування: «Якщо кеш прогрітий, то запит швидкий. Запит не швидкий. Отже, кеш не прогрітий». Яке це правило виводу?

Підвищеної складності

  1. Наведіть повне виведення ss із засновків {pq,  pr,  qt,  (rt)s}\{\,p \wedge q,\ \ p \to r,\ \ q \to t,\ \ (r \wedge t) \to s\,\}, обґрунтовуючи кожен рядок правилом виводу.
  2. Спираючись лише на закони рівносильності (без таблиці, цитуючи кожен крок), спростіть: (а) ¬(p¬q)\neg(p \vee \neg q); (б) (pq)(p¬q)(p \to q) \wedge (p \to \neg q). Який зв’язок результат (б) має з булевими перетвореннями з Лекції 3?
  3. Використавши правило підстановки, виведіть із тавтології A¬AA \vee \neg A формулу (pq)¬(pq)(p \to q) \vee \neg(p \to q). Поясніть, чому заміна лише одного входження AA дала б хибний результат.
  4. У численні гільбертівського типу (аксіоми A1–A3, правила відділення й підстановки) побудуйте виведення формули AAA \to A, докладно вказавши кожну підстановку. (Це Приклад 5.20; відтворіть його самостійно, не підглядаючи.)
  5. Формула має nn різних атомів. (а) Скільки рядків має її таблиця істинності? (б) Поясніть, чому перевірка виконуваності (SAT) таблицею непрактична вже при n=60n = 60, навівши приблизну кількість рядків. (в) Одним реченням скажіть, що робить інакше SAT-розв’язувач.

Lectures/ODM-L05.md · 77.2 KB · updated 2026-08-04 14:32