ブール代数【Boolean algebra】
概要

1854年にイギリスの数学者ジョージ・ブール(George Boole)が著書『論理と確率の数学的な理論の基礎となる思考法則の研究』(An Investigation of the Laws of Thought, on which are founded the Mathematical Theories of Logic and Probabilities)の中で論理を代数的に扱う手法として提唱した。
当時は純粋に数学および論理学の分野での成果に留まっていたが、1937年にアメリカの電気工学者クロード・シャノン(Claude E. Shannon)がブール代数を電気回路のスイッチング動作に応用できることを修士論文で示し、デジタル回路設計の理論的基盤として確立した。
基本的な演算は三つである。「AND演算」(論理積)は二つの入力がともに真のときだけ真を出力する。「OR演算」(論理和)はどちらか一方でも真であれば真を出力する。「NOT演算」(論理否定)は入力を反転し、偽を真に、真を偽に変える。これら三つの組み合わせで任意の論理関数を表現できる。
ブール代数にはいくつかの基本法則がある。交換法則(A AND B = B AND A)、結合法則、分配法則は通常の代数と同様に成り立つ。ブール代数に固有の法則としてド・モルガンの定理があり、NOT(A AND B) = (NOT A) OR (NOT B)、NOT(A OR B) = (NOT A) AND (NOT B)が成立する。また、冪等法則(A AND A = A)や補元法則(A AND NOT A = 0)も成り立つ。
実用上は、論理式を簡略化するためにカルノー図やクワイン・マクラスキー法が使われる。複雑な論理式を最小項の数が少ない等価な式に変換することで、実装に必要なゲート数を減らしコストや消費電力を抑えられる。CPUの演算回路、メモリのアドレスデコーダ、プログラム中の条件分岐など、デジタル技術を構成するほぼすべての論理回路がブール代数を基礎として設計されている。