Алгебра логіки (Булева алгебра, Булева логіка, двійкова логіка, двійкова алгебра, англ. Boolean algebra) — розділ математичної логіки, що вивчає систему логічних операцій над висловлюваннями.[1] В алгебрі логіки значенням змінних є значення істинності істина або хиба, які зазвичай визначаються як 1 і 0 відповідно. На відміну від елементарної алгебри, у якій значеннями змінних є числа, а основними операціями є додавання і множення, основними операціями булевої алгебри є кон'юнкція операція І (англ. AND) позначається як ∧, диз'юнкція АБО (англ. OR) позначається як ∨, і заперечення НІ (англ. NOT) позначається як ¬. Таким чином, формалізм для описання логічних відношень є аналогічним тому, як описуються числові відношення в елементарній алгебрі.

Алгебра логіки
Зображення
Названо на честь Джордж Буль
Тема вивчення/дослідження булева алгебра і булева функція
CMNS: Алгебра логіки у Вікісховищі

Булеву алгебру запропонував Джордж Буль у своїй книзі Математичний аналіз логіки (1847), і більш детально в наступній книзі Дослідження законів думки[en] (1854).[2] Відповідно до Гантінгтона[en], термін «Булева алгебра» вперше запропонував Шеффер у 1913,[3] хоча Чарлз Сандерс Пірс у 1880 дав назву «Булева алгебра з однією сталою» першій главі своєї книги «Найпростіша математика».[4] Булева алгебра є фундаментальною основою для розвитку цифрової електроніки, і втілена в усіх мовах програмування. Вона також використовується в теорії множин і статистиці.[5]

Визначення ред.

Базовими елементами, якими оперує алгебра логіки, є висловлювання.

Висловлювання будуються над множиною {B,  ,  ,  , 0, 1}, де B — непорожня множина, над елементами якої визначені три операції:

  заперечення (унарна операція),
  кон'юнкція (бінарна),
  диз'юнкція (бінарна),
а логічний нуль 0 і логічна одиниця 1 — константи.

Так само використовуються назви

  • диз'юнкт — пропозиціональна формула, що є диз'юнкцією одного або більше літералів (наприклад  ).
  • кон'юнктив — пропозиціональна формула, що є кон'юнкцією одного або більше літералів (наприклад  ).

Унарна операція заперечення в тексті формул оформляється або у вигляді значка перед операндом ( ), або у вигляді риски над операндом ( ), що компактніше, але загалом менш помітно.

Значення ред.

Тоді як в елементарній алгебрі вирази зазвичай виражаються в числах, в алгебрі логіки вони виражають значення істинності істина і хиба. Ці значення задають за допомогою бітів (або двійкових чисел), а саме 0 та 1. Вони не поводять себе так само як цілі числа 0 та 1, для яких 1 + 1 = 2, а можуть визначатися як елементи двоелементного поля GF(2)[en], що є цілочисельною арифметикою за модулем 2, для якої 1 + 1 = 0. Алгебра логіки також вивчає функції, що приймають значення в множині {0, 1}.

Предмет вивчення ред.

Спочатку проблематика алгебри логіки перетиналася з проблематикою алгебри множин (теоретико-множинні операції).

Проте із закінченням формування теорії множин (70-і роки 19 ст.), до складу якої входила алгебра множин, і подальшим розвитком математичної логіки, предмет алгебри логіки значно змінився.

Сучасна алгебра логіки розглядає операції над висловлюваннями (див. Числення висловлень) як булеву функцію і вивчає відносно них такі питання, як:

Операції ред.

Базові операції ред.

Як уже зазначалося, базовими операціями булевої алгебри (алгебри логіки) є такі логічні операції:

  • І (кон'юнкція), позначається xy (іноді x І y), задовольняє xy = 1, якщо x = y = 1 та xy = 0 в інших випадках.
  • АБО (диз'юнкція), позначається xy (іноді x АБО y), задовольняє xy = 0, якщо x = y = 0 та xy = 1 в інших випадках.
  • НІ (заперечення), позначається ¬x (іноді НЕ x або !x), задовольняє ¬x = 0, якщо x = 1 та ¬x = 1, якщо x = 0.

Альтернативним способом значення xy, xy, та ¬x можна представити в табличному вигляді для всіх можливих значень за допомогою таблиць істинності таким способом.

       
0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 1

   
0 1
1 0

Якщо значення істинності 0 та 1 інтерпретувати як цілі числа, ці операції можна було задати як звичайні операції арифметики (де x + y використовує додавання, а xy використовує множення), або як функції мінімуму/максимуму:

 

Можна вважати, що лише заперечення і одна з двох операцій, що залишилися, є базовими, оскільки наступні рівняння дозволяють визначити кон'юнкцію через операції заперечення та диз'юнкцію, і навпаки:

 

Вторинні операції ред.

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

 
 
 

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

         
0 0 1 0 1
1 0 0 1 0
0 1 1 1 0
1 1 1 0 1

Перша операція, x → y, називається імплікацією. Якщо x є істинним, тоді за значення виразу x → y приймається значення y. Але якщо x приймає хибне значення, то значення y можна було б ігнорувати; однак ця операція повинна повернути деяке логічне значення, і існує лише два варіанти вибору. То ж за визначенням, x → y є істиною коли x є хибним.

Друга операція, x ⊕ y, називається виключною диз'юнкцією (часто задається як абревіатура XOR), аби відрізнити її від диз'юнкції. Вона є істиною, лише коли x та y різні.

Третя операція, обернена до виключної диз'юнкції, називається еквівалентність або булева рівність: x ≡ y буде істиною, лише коли x та y мають однакове значення.

Для двох даних операндів, кожен з яких має 22 = 4 можливих комбінації входів. Оскільки кожен вихід може мати два можливих значення, існує загалом 24 = 16 можливих булевих операцій.

Закони ред.

Законом у булевій алгебрі може виступати тотожність між двома булевими виразами такого вигляду як x∨(yz) = (xy)∨z, де булевий вираз (або логічне висловлювання) визначається як вираз, що побудований зі змінних та констант 0 та 1 та операцій між ними ∧, ∨, та ¬. Це поняття можна поширити й до виразів, що містять інші булеві операції, такі як ⊕, →, та ≡, але для формулювання законів таке розширення операцій не є необхідним. Для таких цілей додають визначення булевої алгебри як будь-якої моделі булевих законів, і як засіб для виведення нових законів з наявних, як наприклад доведення, що x∨(yz) = x∨(zy) з yz = zy.

Закони монотонності ред.

Булева алгебра задовольняє багатьом відповідним законам звичайної алгебри, якщо зіставити операції ∨ з додаванням, а ∧ з множенням. Зокрема такі закони є спільними для обох типів алгебр:[6]

Асоціативність операції  :    
Асоціативність операції  :    
Комутативність операції  :    
Комутативність операції  :    
Дистрибутивність операції   over  :    
Ідентичність для  :    
Ідентичність для  :    
Анігілятор для  :    

Такі закони є дійсними в булевій алгебрі, але не дійсні у звичайній алгебрі:

Анігілятор для  :    
Ідемпотентність  :    
Ідемпотентність  :    
Абсорбція 1:    
Абсорбція 2:    
Дистрибутивність операції   над  :    

Якщо прийняти x = 2 в третьому наведеному вище законі, ми бачимо, що це не закон зі звичайної алгебри, оскільки 2 × 2 = 4. Решта п'ять законів можна фальсифікувати у звичайній алгебрі, якщо прийняти, що значення всіх змінних буде 1, наприклад, у законі абсорбції 1 ліва сторона відношення була б 1(1 + 1) = 2, а права частина рівняння була 1, і так далі.

Усі ці закони, що розглядалися досі, були для кон'юнкції та диз'юнкції. Ці дві операції мають властивість, що за зміни будь-якого з аргументів вихід залишиться або незмінним, або змінить своє значення так само як вхід. Аналогічно, зміна значення будь-якої змінної з 0 на 1 ніколи не призведе до того, що вихід змінить своє значення з 1 на 0. Операції з такою властивістю називають монотонними. Таким робом, усі аксіоми досі були для монотонної булевої логіки. Немонотонність з'являється через операцію доповнення ¬, що наведено далі.[5]

Закони немонотонності ред.

Операція доповнення (заперечення) визначається такими двома законами.

 

Усі властивості заперечення, зокрема закони, що наведені нижче, випливають з двох вищенаведених законів.[5]

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

 

Але тоді як «звичайна алгебра» задовольняє таким двом законам:

 

булева алгебра задовольняє законам де Моргана:

 

Повнота ред.

Закони, описані вище, визначають булеву алгебру в тому сенсі, що з них випливають усі інші наслідки. Для цього достатньо законів доповнення 1 та 2, разом із законами монотонності. Отже, їх можна вважати повною множиною законів або однією з можливих систем аксіоматизації булевої алгебри. Кожен закон булевої алгебри випливає логічним чином із цих аксіом. Крім того, булеві алгебри можна визначити як моделі з цих аксіом.

Принцип двоїстості ред.

Принцип: Якщо {X, R} — частково впорядкована множина, тоді {X, R(обернена)} також частково впорядкована множина.

Ніякої магії у виборі символів для позначення логічних значень булевої алгебри не існує. Замість 0 і 1 можна було б використовувати, наприклад, α та β, доки ми робимо це послідовним чином повсюди, це досі залишатиметься булевою алгеброю, але з явними зовнішніми відмінностями.

Припустимо також, що ми переназвали 0 та 1 відповідно на 1 та 0. Тоді це також залишатиметься булевою алгеброю, що навіть оперує з тими самими значеннями. Однак вона не буде ідентичною до нашої початкової булевої алгебри, оскільки тепер операція ∨ поводитиметься так, як поводила себе операція ∧ і навпаки. Тож, вони також матимуть зовнішні відмінності, які показують, що ми змінили позначення, не дивлячись на те, що ми досі використовуємо 0-і та 1-і.

Але якщо в додаток до того, що ми замінили місцями імена змінних, ми замінимо місцями імена двох двійкових операцій, тепер немає ніякого сліду від того, що ми зробили. Кінцевий результат повністю не відрізняється від того, з чого ми почали. Ми помітимо, що колонки для операцій xy та xy у таблицях істинності змінили свої місця, але ця відмінність є незначною.

Коли існує така пара операцій, для яких усе залишається незмінним, якщо всі пари були одночасно взаємно змінені, ми називаємо такі елементи кожної пари двоїстими один з одним. У такий спосіб, 0 та 1 є двоїстими, і операції ∧ та ∨ також є двоїстими. Принцип двоїстості, також називають двоїстістю де Моргана, за якою стверджують, що булева алгебра залишається незмінною, якщо взаємно замінити всі двоїсті пари.

Аксіоми ред.

  1.  , інволютивність заперечення, закон зняття подвійного заперечення
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  

Логічні операції ред.

Простим і найширше вживаним прикладом такої алгебричної системи є множина B, що складається всього з двох елементів:

B = { Хиба (0), Істина (1) }

Зазвичай у математичних виразах Хиба ототожнюється з логічним нулем, а Істина — з логічною одиницею, а операції заперечення (НІ), кон'юнкції (І) та диз'юнкції (АБО) визначаються у звичному нам розумінні. Легко показати, що на цій множині B можна задати чотири унарні та шістнадцять бінарних відношень і всі їх може бути отримано через суперпозицію трьох обраних операцій.

Спираючись на цей математичний інструментарій, логіка висловлювань вивчає висловлювання і предикати. Також запроваджуються додаткові операції, такі як еквівалентність   («тоді й лише тоді, коли»), імплікація   («отже»), складання по модулю два   («виключна диз'юнкція»), штрих Шефера  , стрілка Пірса   та інші.

Логіка висловлювань послугувала основним математичним інструментом під час створення комп'ютерів. Вона легко перетворюється в бітову логіку: істинність висловлювання позначається одним бітом (0 — ХИБА, 1 — ІСТИНА); тоді операція   набуває суті вирахування з одиниці;   — немодульного додавання; & — множення;   — рівності;   — у буквальному розумінні сума за модулем 2 (виключне АБО — XOR);   — сума не перевищує 1 (тобто A   B = (A + B) <= 1).

Згодом булеву алгебру було узагальнено від логіки висловлювань через запровадження характерних для логіки висловлювань аксіом. Це дозволило розглядати, наприклад, логіку кубітів, тризначну логіку (коли є три варіанти істинності висловлювання: «істина», «хиба» і «невизначено») тощо.

Властивості логічних операцій ред.

  1. Комутативність: x y = y x,  {&,  }.
  2. Ідемпотентність: x x = x,  {&,  }.
  3. Асоціативність: (x y) z = x (y z),  {&,  }.
  4. Дистрибутивність кон'юнкцій і диз'юнкції відносно диз'юнкції, кон'юнкції і суми за модулем два відповідно:
    •  ,
    •  ,
    •  .
  5. Закони де Мо́ргана:
    •  ,
    •  .
  6. Закони поглинання :
    •  ,
    •  .
  7. Інші (1):
  8. Інші(2) :
    •  .
    •  .
    •  .
    •  .
  9. Інші(3) (Доповнення законів де Мо́ргана) :
    •  .
    •  .

Існують методи спрощення логічної функції: наприклад, Карта Карно, метод Куайна — Мак-Класкі

Представлення у вигляді діаграм ред.

Діаграма Венна ред.

Діаграма Венна[7] — це графічне представлення булевих операцій за допомогою зафарбованих областей, що перекриваються. По одній області для кожної змінної, всі області круглі, як показано на прикладах. Внутрішня й зовнішня частина області x відповідає значенням 1 (істина) та 0 (хиба) відповідно для змінної x. Зафарбована область показує значення операції для кожної комбінації цих областей, де зафарбована область означає 1, а не зафарбована — 0 (але в деяких книжках може зустрітися і навпаки).

Діаграми Венна на малюнку знизу показують операції кон'юнкції xy, диз'юнкції xy, та доповнення ¬x.

 
Діаграми Венна для кон'юнкції, диз'юнкції та доповнення

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

На другій діаграмі, що показує диз'юнкцію xy зафарбована область, що знаходиться в середині двох кіл одночасно. Третя діаграма представляє доповнення ¬x, де зафарбована область не в середині кола.

Тут не показані діаграми для сталих 0 та 1, оскільки вони тривіальні та представляються незафарбованим або зафарбованим прямокутником, без кіл у середині. Однак ми б могли розмістити коло для змінної x у цих прямокутниках, у такому разі це б позначало функцію з одним аргументом, x, що позначає те саме значення, незалежно від x, що називається константною функцією. Що стосується результатів функцій, то константи й константні функції не відрізняються; їхня відмінність полягає в тому, що константа не приймає ніяких аргументів і називається нульовою операцією, тоді як константна функція приймає один аргумент, який ігнорується, і тому є унарною операцією.

Діаграми Венна є корисними для візуалізації законів. Закони комутативності для ∧ та ∨ можна побачити із симетричності діаграм: бінарна операція, що не є комутативною не мала б симетричної діаграми, оскільки заміна місцями x та y призвело до горизонтального віддзеркалення діаграми, і відсутність комутативності б відзначилася в не симетричності діаграми.

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

Цифрові логічні кола ред.

Цифрова логіка застосовує булеву алгебру для 0 та 1 до електронної апаратури, що складається із з'єднаних між собою логічних елементів, і які утворюють електричну схему. Кожний елемент виконує булеву операцію, і в різних системах позначень позначається так, що його вигляд ідентифікує певну операцію. Форми позначень для елементів, що позначають кон'юнкцію (І-вентиль), диз'юнкцію (АБО-вентиль), і доповнення (інвертори) виглядають так.[8]

 

Лінії по лівій стороні кожного елемента позначають вхідні з'єднання або порти. Значення на вході задається напругою. Для так званої логіки з «активним високим рівнем», 0 задається значенням напруги близьким до нуля або «землі», тоді як 1 задається значенням напруги близьким до джерела напруги; за активного низького рівня все буде навпаки. Лінія по правій стороні від кожного елемента задає вихідний порт, який переважно має ті самі узгодження щодо напруги, що й вхідні порти.

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

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

 

Застосування ред.

Алгебра логіки як числення двох логічних значень є основою для комп'ютерних схем, програмування комп'ютерів і математичної логіки, а також вона використовується в інших галузях математики, таких як теорія множин та статистика.[5]

Комп'ютери ред.

На початку 20-го століття, декілька електротехніків інтуїтивним способом зрозуміли, що булева алгебра аналогічна поведінці певних електричних схем. Клод Шеннон формально довів, що така поведінка логічно еквівалентна булевій алгебрі в 1937 році.

Сьогодні всі сучасні комп'ютери загального призначення виконують свої функції за допомогою булевої логіки двох значень; таким чином, їхні електричні кола є фізичним втіленням булевої алгебри для двох значень. Вони досягають це багатьма способами: за допомогою напруги на з'єднаннях у високочастотних схемах і ємнісних пристроях зберігання даних, за допомогою орієнтації магнітного поля у феромагнітних пристроях зберігання інформації, за допомогою перфорації в перфокартах або паперових стрічках, і так далі. (деякі перші комп'ютери використовували десяткові кола або механізми замість двозначної логіки в електричних колах.)

Звісно, можна закодувати більше ніж два символи. Наприклад, можна використати відповідні значення в 0, 1, 2, і 3 вольта, аби закодувати алфавіт із чотирьох символів, або робити отвори різного розміру в перфокартах. На практиці, обмеження щодо швидкодії, малими розмірами, низьким енергоспоживанням об'єднуються так, що вирішальним фактором стають шуми. І стає важче відрізняти символи, коли в одному місці можуть виникнути декілька можливих символів. Замість того, щоб намагатися розрізнити чотири різні напруги на дроті, інженери цифрових схем зупинилися на двох значеннях напруги, високе і низьке.

Комп'ютери використовують булеві схеми для двох значень з описаних вище причин. Самі типові архітектури комп'ютерів використовують упорядковані послідовності булевих значень, наприклад, у 32 або 64 значень, які називають бітами. 01101000110101100101010101001011. Під час програмування на машинному коді, мові асемблера, і певних інших мовах програмування, програмісти працюють з низькорівневою цифровою структурою з регістрів даних. Ці регістри працюють з рівнями напруги, за яких близьке до нуля значення напруги представляє булеве значення 0, і опорна напруга (часто +5V, +3.3V, +1.8V) задає булеве значення 1. Такі мови підтримують числові операції та логічні операції. У контексті, «числові» означає, що комп'ютер розглядатиме послідовність бітів як двійкові числа (числа з основою два) і виконуватиме арифметичні операції такі як додавання, віднімання, множення або ділення. «Логічні» відноситься до логічних булевих операцій диз'юнкції, кон'юнкції і заперечення між двома послідовностями біт, за яких кожен біт однієї послідовності простим способом порівнюється з відповідним бітом в іншій послідовності. Таким способом, програмісти мають можливість обирати як працювати, застосовуючи правила числової алгебри чи булевої алгебри залежно від потреби. Основною відмінною функцією між родинами операцій є існування операції переносу[en] в першій алгебрі, і відсутність в останній.

Історія ред.

Засади алгебри логіки сформулював британський математик Джордж Буль у 1847 році. Алгебра Буля передувала сучасному розвитку абстрактної алгебри і математичної логіки; і вважають, що вона пов'язана з появою обох цих галузей.[9] В абстрактному тлумаченні, булева алгебра була розвинена в кінці 19-го століття, чому значно приклали зусилля математики Вільям Джевонс, Ернст Шредер, Едвард Гантінгтон[en] та інші, доки вона не досягла сучасного поняття (абстрактної) математичної структури.[9] Наприклад, емпіричні спостереження про те, що можливо маніпулювати виразами в алгебрі множин, якщо перевести їх у вирази булевої алгебри пояснюються в сучасних термінах, що алгебра множин це Булева алгебра. Насправді, М. Г. Стоун у 1936 довів, що кожна булева алгебра є ізоморфною полю множин.

У 1930-х, під час вивчення перемикання електричних кіл[en], Клод Шеннон помітив, що в цій темі також можна використовувати закони булевої алгебри, і запропонував комутаційну алгебру, що дозволяє аналізувати та проєктувати схеми за допомогою алгебричних методів у термінах логічних елементів. Під час розробки схемотехніки сьогодні, немає великої потреби розглядати інші булеві алгебри, тому поняття «комутаційна алгебра» і «булева алгебра» часто використовуються як взаємозамінні.[10][11][12] Під час розробки схем комбінаційної логіки фундаментальною задачею є ефективна реалізація[en] булевих функцій. Сучасні засоби автоматизації проєктування електронних систем для інтегральних схем надвеликого рівня інтеграції часто покладаються на ефективне представлення булевих функцій, що називають (скороченими впорядкованими) двійковими діаграмами рішень для синтезу логіки та формальної верифікації.[13]

Логічні вирази, які можна представити в класичному численні висловлювань мають еквівалентні вирази[en] в булевій алгебрі. Так, термін булева логіка іноді використовується для зазначення числення висловлювань, що здійснюється в такий спосіб.[14][15][16] Булевої алгебри не достатньо для роботи з логічними формулами, у яких використовують квантори, таких як у логіці першого порядку. Хоча розвиток математичної логіки не відповідає булевій, зв'язок між його алгеброю і логікою пізніше був закладений в основу алгебричної логіки, що також вивчає алгебричні системи багатьох інших логік.[9] Задача про ухвалення рішень про те, чи можуть змінні даної булевої формули (висловлювання) приймати такі значення, що формула буде розрахована як істина, називається задачею здійсненності булевих формул, і є дуже вадливою для теоретичної інформатики, що є першою задачею для якої було показано, що вона має складність NP-повної задачі. Тісно пов'язана з цим модель обчислення, що відома як булева схема[en] співвідносить часову складність (алгоритму) зі складністю схем[en].

Див. також ред.

Примітки ред.

  1. Алгебра логіки // Большая советская энциклопедия : в 30 т. / главн. ред. А. М. Прохоров. — 3-е изд. — М. : «Советская энциклопедия», 1969—1978. (рос.)
  2. Boole, George (2003) [1854]. An Investigation of the Laws of Thought. Prometheus Books. ISBN 978-1-59102-089-9. 
  3. «The name Boolean algebra (or Boolean 'algebras') for the calculus originated by Boole, extended by Schröder, and perfected by Whitehead seems to have been first suggested by Sheffer, in 1913.» E. V. Huntington, «New sets of independent postulates for the algebra of logic, with special reference to Whitehead and Russell's Principia mathematica [Архівовано 8 вересня 2017 у Wayback Machine.]», in Trans. Amer. Math. Soc. 35 (1933), 274—304; footnote, page 278.
  4. Peirce, Charles S. (1931). Collected Papers. Т. 3. Harvard University Press. с. 13. ISBN 978-0-674-13801-8. Архів оригіналу за 27 липня 2020. Процитовано 7 лютого 2019. 
  5. а б в г Givant, Steven; Halmos, Paul (2009). Introduction to Boolean Algebras. Undergraduate Texts in Mathematics, Springer. ISBN 978-0-387-40293-2. 
  6. O'Regan, Gerard (2008). A brief history of computing. Springer. с. 33. ISBN 978-1-84800-083-4. Архів оригіналу за 27 липня 2020. Процитовано 7 лютого 2019. 
  7. Venn, John (July 1880). I. On the Diagrammatic and Mechanical Representation of Propositions and Reasonings. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science. 5. 10 (59): 1–18. doi:10.1080/14786448008626877. Архів оригіналу за 16 травня 2017.  [1] [Архівовано 2 червня 2020 у Wayback Machine.] [2] [Архівовано 3 серпня 2021 у Wayback Machine.]
  8. Shannon, Claude (1949). The Synthesis of Two-Terminal Switching Circuits. Bell System Technical Journal. 28: 59–98. doi:10.1002/j.1538-7305.1949.tb03624.x. 
  9. а б в J. Michael Dunn; Gary M. Hardegree (2001). Algebraic methods in philosophical logic. Oxford University Press US. с. 2. ISBN 978-0-19-853192-0. Архів оригіналу за 6 липня 2019. Процитовано 8 лютого 2019. 
  10. Norman Balabanian; Bradley Carlson (2001). Digital logic design principles. John Wiley. с. 39–40. ISBN 978-0-471-29351-4. , online sample [Архівовано 29 липня 2020 у Wayback Machine.]
  11. Rajaraman & Radhakrishnan (1 березня 2008). Introduction To Digital Computer Design. PHI Learning Pvt. Ltd. с. 65. ISBN 978-81-203-3409-0. Архів оригіналу за 27 липня 2020. Процитовано 8 лютого 2019. 
  12. John A. Camara (2010). Electrical and Electronics Reference Manual for the Electrical and Computer PE Exam. www.ppi2pass.com. с. 41. ISBN 978-1-59126-166-7. Архів оригіналу за 27 липня 2020. Процитовано 8 лютого 2019. 
  13. Shin-ichi Minato, Saburo Muroga (2007). Binary Decision Diagrams. У Wai-Kai Chen (ред.). The VLSI handbook (вид. 2nd). CRC Press. ISBN 978-0-8493-4199-1. chapter 29. 
  14. Alan Parkes (2002). Introduction to languages, machines and logic: computable languages, abstract machines and formal logic. Springer. с. 276. ISBN 978-1-85233-464-2. Архів оригіналу за 27 липня 2020. Процитовано 8 лютого 2019. 
  15. Jon Barwise; John Etchemendy; Gerard Allwein; Dave Barker-Plummer; Albert Liu (1999). Language, proof, and logic. CSLI Publications. ISBN 978-1-889119-08-3. 
  16. Ben Goertzel (1994). Chaotic logic: language, thought, and reality from the perspective of complex systems science. Springer. с. 48. ISBN 978-0-306-44690-0. Архів оригіналу за 27 липня 2020. Процитовано 8 лютого 2019. 

Література ред.


Посилання ред.