Печера Платона

Ієрархія логічних сполучників

2025-07-16 15:07 Texts
Вирішив почитати Стівена Кліні та його «математичну логіку». І ось, майже на початку, зустрічаю наступний момент:
Про що тут йдеться? Про ієрархію логічних сполучників: еквіваленція, імплікація, кон’юнкція, диз’юнкція та заперечення. Це робиться для того, щоб менше використовувати дужки. Я так розумію, коли усі формули набирались або записувались вручну, використання дужок потребувало більше часу та місця (на папері). Приклад у Кліні: C ~ A & B -> C, повинна читатись ось так C ~ ((A & B) -> C). Як вам такий варіант?

Але як завжди виникає питання: а чому ієрархія має саме таку послідовність? Відповідь проста: бо так захотілось логікам :). Якщо почати досліджувати старі книжки з логіки, то може закіпіти голова: більшість авторів обирають ієрархію «до смаку». Бували моменти, коли різні перевидання одного і того ж підручника мали різні ієрархії. Як зазначає сам Кліні у примітках, у більшості випаднків, мінялись місцями V та &. Звісно сама ієрархія має певні паралелі з математичними операціями (додавання, множення тощо), але не завжди усі логіки підтримували одну і ту ж інтуїцію.

Іншим цікавим прикладом розмежування формул є крапки. Якщо погортати Principia Mathematica (краще це не робити, щоб не трамвувати себе) то на початку вже можна побачити ось таку красу (це перший том):
Тут можна зустріти «.», «:», «:.». Все це колись використовувалось для розмежування формул. Якщо придивитись, круглі дужки використовують лише епізодично, коли крапкова нотація стала б громіздкою (як у Assoc). Окрім цих крапок (я б їх назвав у нижньому регістрі), також можна зустріти крапку, яка знаходиться по середині рядка p · q, — це кон’юнкція (у сучасності це ∧). Якщо ви колись проходили сучасний курс з логіки (традиційної, класичної тощо) і вам вона здалась складною, уявіть як це було складно вивчати, коли у кожного логіка була своя нотація та свої ієрархії).

Звісно, це не кінець історії, бо різні логіки окрім ієрархій могли використовувати різні нотації. Одна з них: це польська нотація (або префіксна нотація), запроваджена Яном Лукасевичем. Цілі звісно були благородні: спростити логіку висловлювань.

Наприклад, якщо ми хочемо провести операцію додавання двох чисел "п'ять" та "три" ми запишемо це так: 5+3. Якщо ж використовувати префіксну нотацію: + 5 3. Звісно, з ускладненням операцій потрібно буде вносити певні перестановки. Наприклад, звичайне для нашого ока запис 5+3*6, можна записати використовуючи префіксний підхід: +5 *3 6.

Тут можна поставити запитання: а взагалі для чого все це знати? Це знання частково допоможе зрозуміти, під впливом якого логіка (чи школи/напрямку) була та чи інша мова програмування. Наприклад, та ж префіксна нотація використовується у мові Lisp, а певна ієрархія логічних сполучників у C-подібних мовах.

Напишіть, чи треба взагалі продовжувати щось таке писати? Вам цікаво?