ブール論理(ブールろんり、)は、古典論理のひとつで、その名称はブール代数ないしその形式化を示したジョージ・ブールに由来する。リレーなどによる「スイッチング回路の理論」として1930年代に再発見され(論理回路#歴史を参照)、間もなくコンピュータに不可欠な理論として広まり、こんにちでは一般的に使われている。本項目では、集合代数を用いて、集合、ブール演算、ベン図、真理値表などの基本的解説とブール論理の応用について解説する。ブール代数の記事ではブール論理の公理を満足する代数的構造の型を説明している。ブール論理はブール代数で形式化され2値の意味論を与えられた命題論理とみることができる。"X"を集合としたとき:集合 A には普遍集合の中の全ての偶数(2の倍数)が含まれ、集合 B には同じ普遍集合の中の全ての 3 の倍数が含まれるとする。そのとき、これらの集合の共通部分(A AND B の集合の全ての元)は、その普遍集合の中の全ての6の倍数が含まれる。集合 A の補集合(NOT A に含まれる全ての元)は、その普遍集合の全ての奇数となる。たかだか2つの集合に対してブール演算を行い、その演算によって形成された新たな集合と別の集合に対して新たなブール演算を適用することができる。上の例で言えば、普遍集合の全ての 5 の倍数を含む集合 C を新たに定義する。ここで「集合 A AND B AND C」は、その普遍集合の全ての30の倍数を含む。記述を単純化するため、集合 A と B の共通部分を AB と記したり、6の倍数の集合を導入したりする。そうすると「集合 AB AND C」は、同様に全ての30の倍数を含む。このようなステップをさらに進めていくこともでき、この演算の結果として集合 ABC を定義することもできる。任意個の論理積(AND)の連鎖には曖昧さは全くないが、AND と OR と NOT が組み合わされると曖昧な場合が出てくる。そのような場合に演算の順序を明確化するために括弧を使うこともある。通常、最も内側の括弧内の演算が最初に実行され、順次外側に移っていく。2つの二項演算子の記号を formula_8(論理積/AND/共通部分)と formula_9(論理和/OR/和集合)とし、単項演算子の記号を formula_10 / ~ (論理否定/NOT/補集合)とする。また、値 0 (偽/空集合)と 1 (真/普遍集合)も使用する。ブール代数とブール論理では以下のような法則が成り立つ。最初の3つの法則が束を定義し、最初の5つの法則がブール代数を定義する。0 と 1 という2つの値のみを使ったブール論理で、それらの値の共通部分と和集合を真理値表で定義すると次のようになる:ブール論理の演算子の表現方法は様々である。AND、OR、NOT が最も直観的である。数学者や技術者は OR の代わりに +、AND の代わりに formula_13 を使うことが多い(これらの演算子は他の代数的構造での加算や乗算と性質が似ており、通常の代数に詳しい者にとっては選言標準形を理解しやすいため)。NOT は式の上に線を引いて表すこともある。プログラマは、AND を表現するのに & (アンパサンド)、OR を表すのに | (パイプ記号)を使うことが多い。これらの記号はプログラミング言語でビット演算の記号として使われていることが多い。NOT は ! (感嘆符)で表されることが多い。(ブール論理に限った話ではないが)論理式をそのまま自然言語にすると、しばしば、同じ言葉の日常での意味と異なっていたり、曖昧だったりすることがあるため注意が必要である。日本語の場合の例をいくつか挙げる。自然言語の「朝食にはパンか御飯を食べることができる」の「パンか御飯」は、そのまま解釈すればORだが、普通は排他的論理和すなわち「パンか御飯のどちらかを選ぶことができる」の意味であることが多い。曖昧な例としては「全ての輝くものが金ではない」という文は「輝くものは全て金ではない」(全否定)とも「輝くものには金でないものもある」(部分否定)とも解釈できる。ブール論理は論理回路の設計にも使われる。その場合、0 と 1 はデジタル回路でのビットの異なる2つの状態を表し、電圧の高低に対応させることが、現代では多い(必ずしもそうしなければならないわけではない)。回路は変数を含む式で表され、変数が回路の入力、式を評価した結果が回路の出力に相当する。入力と出力の対応が完全に与えられれば、それをブール論理の式で表現することができる。ANDゲート、ORゲート、NOTゲートのような基本論理回路だけを使うこともできるが、NANDゲート、NORゲート、XORゲートなども組み合わせてデジタル回路を構成することができる。組み合わせ方は、演算子の優先順位に従って直列や並列に結合する。関係データベースではクエリのためにSQLなどのデータベース固有の言語を使うが、これらはブール論理を含んでいる。この場合、表内のレコードは「集合」の中の「元」に相当する。例えば、SQLでのSELECT文は、データベース内の表からデータを次のように取り出す。複数のブール演算がある場合、括弧を使って演算の順序を制御することもある:必要に応じて括弧をいくつも入れ子にすることも可能である。複数の表をブール演算で組み合わせることを結合と呼ぶ(関係代数)。この場合、インターネット上の各ウェブページが「集合」の「元」に相当する。検索エンジンによってクエリの文法は様々である。ここではGoogleでの文法を説明する。面白いことに、Google Scholarでは "OR" を使うと排他的論理和(XOR)の操作が行われる。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。