Алгебра логіки

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Булеву алгебру запропонував Джордж Буль у своїй книзі Математичний аналіз логіки (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 if 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. , інволютивність заперечення, закон зняття подвійного заперечення

Логічні операції[ред. | ред. код]

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

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

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

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

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

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

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

  1. Комутативність: xy = yx, {&, }.
  2. Ідемпотентність: xx = x, {&, }.
  3. Асоціативність: (xy)z = x(yz), {&, }.
  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]

LogicGates.GIF

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

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

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

DeMorganGates.GIF

Застосування[ред. | ред. код]

Алгебра логіки як числення двох логічних значень є основою для комп'ютерних схем, програмування комп'ютерів і математичної логіки, а також вона використовується в інших областях математики таких як теорія множин та статистика.[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», 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. 
  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. 
  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. Архів оригіналу за 2017-05-16.  [1] [2]
  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. 
  10. Norman Balabanian; Bradley Carlson (2001). Digital logic design principles. John Wiley. с. 39–40. ISBN 978-0-471-29351-4. , online sample
  11. Rajaraman & Radhakrishnan (2008-03-01). Introduction To Digital Computer Design. PHI Learning Pvt. Ltd. с. 65. ISBN 978-81-203-3409-0. 
  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. 
  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. 
  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. 

Література[ред. | ред. код]

Посилання[ред. | ред. код]