布林邏輯

布林邏輯（Boolean algebra）得名於喬治・布林，他是愛爾蘭科克的皇后學院的英國數學家，他在十九世紀中葉首次定義了邏輯的代數系統。現在，布林邏輯在電子學、計算機硬體和軟體中有很多應用。在 1937 年，克勞德・艾爾伍德・夏農展示了布林邏輯如何在電子學中使用。

使用集合代數作為介紹布林邏輯的一種方式。還使用文氏圖來展示各種布林邏輯陳述所描述的集合聯絡。

術語

設 X 是一個集合：

元素是一個集合的成員。表示為。如果它不是這個集合的元素，表示為。
全集是集合 X，有時表示為 1。注意使用全集這個詞意味著 “慮及的所有元素”，不必然的同 “現有的所有元素” 一樣。
空集或 null 集合是沒有元素的集合，表示為，有時表示為 0。
一元算符應用於一個單一的集合。有一個一元算符叫做邏輯非（NOT）。它的作用是採用補集。
二元算符應用於兩個集合。基本的二元算符是邏輯或（OR）和邏輯與（AND）。它們進行集合的並集和交集。還有其他衍生的二元算符，比如邏輯異或（XOR，排他的或）。
子集表示為 A B，意味這在集合 A 中所有元素都在集合 B 中。
真子集表示為 A B，意味著在集合 A 中的所有元素都在集合 B 中，並且兩個集合不等同。
超集表示為 A B，意味著在集合 B 中的所有元素都在集合 A 中。
真超集表示為 A B，意味著在集合 B 中的所有元素都在集合 A 中，並且兩個集合不等同。

例子

設影像為集合 A 包含 "全集" 中所有偶數（二的倍數），集合 B 包含 "全集" 中所有三的倍數。則兩個集合的交集（在集合 A AND B 中所有的元素）將是 "全集" 中所有六的倍數。

集合 A 的補集（所有不在集合 A 中的元素）是 "全集" 中所有的奇數。

把運算連線起來

儘管在任何布林運算中都最多有兩個集合參與，從這個運算所形成的新集合可以接著與其他集合聯合起來實現另外的布林運算。使用前面的例子，我們可以定義一個新集合 C 作為 "全集" 中所有五的倍數的集合。所以 "集合 A AND B AND C" 將是 "全集" 中所有 30 的倍數。如果為了更方便，我們可以把集合 AB 當作集合 A 和 B 的交集，或者說 "全集" 中所有六的倍數的集合。那麼我們可以稱 "集合 AB AND C" 是 "全集" 中所有 30 的倍數的集合。我們接著進一步的把這個結果叫做集合 ABC。

3.1 使用圓括號

儘管任何數目的邏輯 AND（或任何數目的邏輯 OR）可以被連線在一起而沒有歧義，AND 和 OR 和 NOT 的組合可以導致歧義的情況。在這種情況下，可以使用圓括號來分清運算的次序。永遠是最內的括號內的運算先進行，隨後是外層的括號以此類推，直到在所有的括號內運算都完成。接著進行括號外的運算。

性質

為兩個主要的二元運算的符號定義為 (邏輯與 / 交集）和 (邏輯或 / 並集），把單一的一元運算的符號定義為 / ~(邏輯非 / 補集）。我們還使用值 0（邏輯假 / 空集）和 1（邏輯真 / 全集）。下列性質適用於布林代數和布林邏輯二者：

真值表

布林邏輯只使用兩個值 0 和 1，這兩個值的交集和並集可以使用真值表定義如下：

也可以建立涉及多個輸入和其他布林運算的更復雜的真值表。
真值表應用在邏輯中，解釋 0 為假，1 為真，為與，為或，而 ¬ 為非。

布林術語的基本數學使用

在聯立方程的情況下，被聯立的方程暗含邏輯與：

:x + y = 2

:AND

:x - y = 2

同樣適用於聯立不等式：

:x + y < 2

:AND

:x - y < 2

大於等於號和小於等於號，可以認為是暗含邏輯或的一對等式與不等式的聯立：

:X < 2

:OR

:X = 2

加 / 減號，在表示 “平方根的解” 情況下，可以被看作暗含邏輯或的一對聯立等式：

:WIDTH = 3

:OR

:WIDTH = -3

布林術語的英語使用

在把英語句子轉換成形式的布林語句的時候要小心。很多英語詞語不精確的意義可能導致多種邏輯結果，例如英語單詞 NOT（非）：“所有閃光的東西不是金子。” 可以解析為以下不同的邏輯表達：

“沒有閃光的東西是金子”
“有些閃光的東西不是金子”

作為英語單詞的 AND（與）和 OR（或）在特定情況下是可以互換使用的：

"在下雨與下雪的時候我總是帶傘。"
"在下雨或下雪的時候我總是帶傘。"

還要注意在英語中單詞 OR（或）可以分別對應於邏輯表達中的或（OR）（此亦彼亦）和異或（XOR）（此即彼非），具體意思要依賴於上下文進行判斷：

"我在潮溼或高溫的時候出汗。"（此亦彼亦，判定為邏輯或）
"我午飯打算吃雞肉或牛肉。"（此即彼非，判定為邏輯異或）

在規定計算機程式或者電子電路時，如何使用英語準確描述其功能邏輯是個關鍵問題。例如，對於功能 “程式應校驗申請者已經選擇取了男性或女性單選框”，應當被當作一個異或（非此即彼）邏輯（即 “程式應校驗申請者已經選擇取了男性或女性選項，並且此二選項互相排他”），則程式語句須特別限定 “二者之間只有一個能被選擇” 來確保校驗功能的實現；假如將其混為或邏輯（此亦彼亦），則該校驗功能有可能被錯誤地實現，造成申請者同時選擇兩個選項、而校驗依然透過。

在其他非技術語言的情況下，對於一段英語文字的解釋可能包含更多的不確定性，可能需要深入探討、以確保明晰該段文字背後所含的邏輯意義的多種可能性。

應用

9.1 數位電子電路設計

布林邏輯還在電子工程中的電路設計中使用；這裡的 0 和 1 表示在數位電路中某一個位的不同狀態，典型的是高和低電壓。使用包含變數的表示式描述電路，並且對於這些變數的所有的值兩個這種表示式是等價的，當且僅當對應的電路有相同的輸入 - 輸出行為。進一步的說，每種可能的輸入 - 輸出行為都被建模為適合的布林表示式。

基本的邏輯閘比如與閘、或閘、非閘可以單獨使用，或者聯合成與非閘、或非閘和異或閘來控制數位電子和電路。這些閘的串聯或並聯控制了運算的優先順序。

9.2 資料庫應用

關係資料庫使用 SQL 語言，或者其他特定於資料庫的語言，來進行查詢，它可以包含布林邏輯。對於這種應用，在表中每個記錄都可以被當作 "集合" 的 "元素"。例如，在 SQL 中，下列 SELECT 語句被用來從在資料庫中的表格中檢索資料：

SELECT * FROM EMPLOYEES WHERE LASTNAME = 'Smith' AND FIRSTNAME = 'John' ;
SELECT * FROM EMPLOYEES WHERE LASTNAME = 'Smith' OR FIRSTNAME = 'John' ;
SELECT * FROM EMPLOYEES WHERE NOT LAST_NAME = 'Smith' ;

在有多個運算出現的時候，可以使用圓括號來明確的指定布林運算發生的次序：

SELECT * FROM EMPLOYEES WHERE（NOT LASTNAME = 'Smith'）AND（FIRSTNAME = 'John' OR FIRST_NAME = 'Mary'）;

在需要的時候可以使用巢狀的圓括號。

聯合兩個（或更多）表格的任何布林運算在關係資料庫術語中都被稱為連線。

9.3 搜尋引擎查詢

對於這種應用，在網際網路上的每個 web 頁面都被當作是 "集合" 的 "元素"。各種線上搜尋引擎使用各自不同的語法。下面描述 Google 使用的語法。

邏輯與不使用符號。所以，它是連線兩個搜尋項的預設方式：

:"搜尋項 1" "搜尋項 2"

使用關鍵字 OR 表示邏輯或：

:"搜尋項 1" OR "搜尋項 2"

使用減號表示邏輯非：

:-"搜尋項 1"

不支援使用圓括號來明確指定運算的次序。