ブール代数は、抽象代数の数学的に豊かな分野です。スタンフォード哲学百科事典は、ブール代数を「命題結合子のみを持つ2値論理の代数、または同等に、和集合と補集合に関する集合の代数」と定義しています。[ 1 ]群論が群を扱い、線形代数がベクトル空間を扱うのと同様に、ブール代数は2つの値0と1の等式理論のモデルです(その解釈は数値である必要はありません)。ブール代数、群、ベクトル空間に共通するのは、代数構造、つまり特定の等式を満たすいくつかの演算に関して閉じている集合の概念です。[ 2 ]
グループには基本的な例があるように、整数とn個のオブジェクトの順列の対称群S nの他に、次のようなブール代数の基本的な例もあります。
したがって、ブール代数を用いることで、抽象代数の手法を数理論理学やデジタル論理学に適用することが可能となる。
有限位数の群は複雑性と多様性を示し、その一階理論は特殊な場合にのみ決定可能であるのに対し、すべての有限ブール代数は同じ定理を共有し、決定可能な一階理論を持つ。その代わりに、ブール代数の複雑さは、無限代数の構造と、その構文構造のアルゴリズム的な複雑さに分かれている。
ブール代数は、ブールプロトタイプと呼ばれる最大2要素有限代数の等式理論と、ブール代数と呼ばれるその理論のモデルを扱います。[ 3 ]これらの用語は次のように定義されます。
代数とは、代数の基礎となる集合と呼ばれる集合に対する演算の集合のことです。ここでは、ブールプロトタイプの基礎となる集合を{0,1}とします。
代数が有限であるとは、その各演算が有限個の引数しか取らない場合をいう。プロトタイプでは、演算の各引数は0または1であり、演算結果も同様である。このような代数の最大値は、{0,1}上のすべての有限演算から構成される。
各演算が受け取る引数の数を、その演算のアリティと呼びます。{0,1} に対するアリティnの演算、つまりn項演算は、 n 個の引数に対して2 n通りの可能な値のいずれかに適用できます。引数の選択ごとに、演算は0または1 を返す可能性があり、したがってn項演算は2 n通り存在します。
したがって、プロトタイプには、引数を取らない 2 つの演算があり、これらはゼロ項演算またはヌル項演算と呼ばれ、すなわちゼロと 1 です。 4 つの単項演算があり、そのうち 2 つは定数演算、もう 1 つは恒等演算、そして最もよく使用される否定と呼ばれる演算は、引数の反対を返します。つまり、0の場合は1、1の場合は0です。 16 個の二項演算があり、そのうち 2 つは定数、もう 1 つは最初の引数を返し、さらにもう 1 つは2 番目の引数を返します。1 つは論理積と呼ばれ、両方の引数が 1 の場合は 1 を返し、それ以外の場合は 0 を返します。もう 1 つは論理和と呼ばれ、両方の引数が 0 の場合は 0 を返し、それ以外の場合は 1 を返します。などです。プロトタイプの( n + 1)項演算の数は、 n項演算の数の 2乗なので、16 2 = 256 個の三項演算、256 2 = 65,536 個の四項演算などがあります。
ファミリーはインデックス集合によってインデックス付けされます。代数を構成する演算のファミリーの場合、インデックスは演算記号と呼ばれ、その代数の言語を構成します。各記号によってインデックス付けされる演算は、その記号の指示または解釈と呼ばれます。各演算記号はその解釈のアリティを指定するため、記号のすべての可能な解釈は同じアリティを持ちます。一般に、代数では同じ演算で異なる記号を解釈できますが、これはプロトタイプには当てはまりません。プロトタイプの記号は演算と1対1に対応しています。したがって、プロトタイプには、ブール演算記号と呼ばれ、ブール代数の言語を構成する2 2 n n項演算記号があります。否定の¬ 、論理積の∧、論理和の∨など、慣習的な記号を持つ演算はごくわずかです。[ 4 ]真理値表のセクションで後述するように、i番目のn項記号をn f iと考えると便利です。
ある言語における等式理論は、その言語の記号を用いて変数から構成される項間の等式から成ります。ブール代数の言語における典型的な等式は、x ∧ y = y ∧ x、x ∧ x = x、x ∧¬ x = y ∧¬ y、およびx ∧ y = xです。
代数が方程式を満たすとは、演算記号がその代数で指定されたように解釈されたときに、その代数内の変数のすべての可能な値に対して方程式が成り立つ場合をいう。ブール代数の法則とは、プロトタイプによって満たされるブール代数の言語における方程式のことである。上記の例のうち最初の3つはブール法則であるが、4つ目は1∧0≠1であるためブール法則ではない。
代数の等式理論とは、その代数が満たすすべての等式の集合である。したがって、ブール代数の法則は、ブールプロトタイプの等式理論を構成する。
理論のモデルとは、その理論の言語における演算記号を解釈し、その理論の方程式を満たす代数のことである。
つまり、ブール代数とは、ブール演算記号を解釈し、ブールプロトタイプと同じ法則を満たす、集合とその集合上で行われる演算の集合のことである。
代数の同型をその代数の等式理論のモデルと定義するならば、ブール代数はプロトタイプの任意の同型として定義できる。
例1.ブールプロトタイプは、自明に自身の法則を満たすため、ブール代数である。したがって、これはプロトタイプブール代数である。定義に循環論法が生じるのを避けるため、当初はそう呼ばなかった。
演算はすべて明示的に記述する必要はありません。基底とは、残りの演算を合成によって得られる任意の集合のことです。「ブール代数」は、いくつかの異なる基底のいずれかから定義できます。ブール代数には、格子基底、環基底、シェファーストローク(またはNAND)基底の3つの基底が一般的に使用されています。これらの基底は、それぞれ論理的、算術的、そして簡潔な性質を対象にもたらします。
格子基底と環基底の共通要素は、定数 0 と 1、および結合法則を満たす可換二項演算です。格子基底では、この演算は「x ∧ y」と呼ばれ、環基底では「xy」という乗算と呼ばれます。この区別は用語上のものに過ぎません。格子基底には、さらに「x ∨ y」という結合演算と「¬ x」という補数演算があります。一方、環基底には、加算演算x ⊕ y があります(記号「 ⊕ 」は、「 +」が「結合」というブール値として解釈されることがあるため、優先的に使用されます)。
基底であるということは、合成によって他のすべての演算を生成することであり、したがって任意の 2 つの基底は相互に変換可能でなければなりません。格子基底は、x ∨ yを環基底x ⊕ y ⊕ xyに変換し、¬ xをx ⊕1に変換します。逆に、環基底は、x ⊕ y を格子基底( x ∨ y )∧¬( x ∧ y )に変換します。
これらの基底はいずれも、ブール演算の等式特性のサブセットを介してブール代数を定義できるようにする。格子基底の場合、ブール代数をx ∧¬ x = 0およびx ∨¬ x = 1を満たす分配格子として定義すれば十分であり、これは補元分配格子と呼ばれる。環基底は、ブール代数をブール環、すなわちx 2 = xを満たす環に変換する。
エミール・ポストは、演算の集合が非ゼロのブール演算の基底となるための必要十分条件を与えた。非自明な性質とは、基底を構成する演算のうち、一部にのみ共通する性質のことである。ポストは、演算の5つの非自明な性質を列挙し、それぞれが合成によって保存される5つのポストのクラスと同一視できることを示した。そして、各性質について、その性質を持たない演算が集合に含まれている場合に、演算の集合が基底を形成することを示した。(ポストの定理の逆は、「ならば」を「ならばかつその場合に限る」に拡張したもので、候補基底のすべての演算に当てはまる5つの性質のうちの1つが、その候補基底から合成によって形成されるすべての演算にも当てはまるという容易な観察である。したがって、その性質の非自明性により、候補基底は基底にならない。)ポストの5つの性質は以下のとおりである。
NAND (双対NOR)演算はこれらすべてを欠いているため、それ自体が基礎となる。
{0,1} 上の有限演算は、0 と 1 をそれぞれ偽と真という真理値とみなして真理表として表すことができます。[ 6 ]これらは、統一されたアプリケーションに依存しない方法で配置することができ、個別に名前を付けたり、少なくとも番号を付けたりすることができます。これらの名前は、ブール演算の便利な略記法を提供します。n項演算の名前は2 nビットのバイナリ数です。このような演算は2 2 n個あるため、これ以上簡潔な命名法を求めることはできません。各有限演算はスイッチング関数と呼ばれることに注意してください。
このレイアウトとそれに伴う演算の命名規則は、引数の数が0から2までの場合について、ここに完全に示されています。
これらの表は、アリティがさらに高くなるにつれて続き、アリティnでは2 n行あり、各行はn個の変数x 0、... x n −1の評価または束縛を示し、各列の見出しn f i は、その評価におけるi番目のn 項演算の値n f i ( x 0、...、x n −1 )を示します。演算には変数が含まれます。たとえば、1 f 2はx 0ですが、 2 f 10はx 0 (単項の対応物の 2 つのコピーとして) であり、2 f 12はx 1 (単項の対応物なし)です。否定または補数¬ x 0は1 f 1として現れ、再び2 f 5として現れます。2 f 3 ( ¬ x 1、これはアリティ 1 では現れませんでした)、選言または和集合x 0 ∨ x 1は2 f 14として、連言または積集合x 0 ∧ x 1は2 f 8として、含意x 0 → x 1は2 f 13として、排他的または対称差x 0 ⊕ x 1は2 f 6 として、集合差x 0 − x 1は2 f 2として、など。
内容よりも形式が重要な些細な点として、代数の演算は伝統的にリストとして整理されます。ここではブール代数の演算を {0,1} 上の有限演算でインデックス付けしていますが、上記の真理値表の表現では、偶然にも演算が最初にアリティ、次に各アリティの表のレイアウトによって順序付けられています。これにより、すべてのブール演算のセットを伝統的なリスト形式で整理することができます。特定のアリティの演算のリスト順序は、次の 2 つの規則によって決定されます。
C言語やJavaでプログラミングする場合、ビットごとの論理和は次のように表されます。x | y接続詞xとy、および否定~ xしたがって、プログラムは、例えば演算x ∧( y ∨ z )をこれらの言語で次のように表現できます。x &( y | z )以前に設定したx = 0xaa、y = 0xcc、 そしてz = 0xf0(「0x「」は、次の定数を16進数(基数16)で読み取ることを示しており、変数への代入またはマクロとして定義されます。これらの1バイト(8ビット)定数は、上記の表を3つの変数に拡張した際の入力変数の列に対応します。この手法は、ラスターグラフィックスハードウェアでほぼ普遍的に使用され、画像を結合およびマスクするための柔軟なさまざまな方法を提供します。典型的な操作は3進数であり、ソース、デスティネーション、およびマスクビットに同時に作用します。
例 2。与えられた長さのすべてのビットベクトルは「ポイントごとに」ブール代数を形成します。つまり、任意のn項ブール演算をn個のビットベクトルに 1 ビットずつ適用できます。たとえば、長さ 4 の 3 つのビットベクトルの 3 項 OR は、4 つのビット位置のそれぞれにある 3 つのビットを OR で結合して形成される長さ 4 のビットベクトルです。したがって、0100∨1000∨1001 = 1101となります。別の例として、上記のn項演算の真理値表があります。この表の列はすべて長さ2 nのビットベクトルであり、したがってポイントごとに結合できるため、n項演算はブール代数を形成します。[ 7 ] これは有限長と無限長のビットベクトルに対して同様に機能します。唯一のルールは、「対応する位置」が明確に定義されるように、ビット位置がすべて同じセットでインデックス付けされていることです。
このような代数の原子は、ちょうど 1 を含むビットベクトルです。一般に、ブール代数の原子は、x ∧ yがxまたは0の2 つの値のみを持つような要素xです。
例 3。 冪集合代数、与えられた集合Wのすべての部分集合の集合2 W。[ 8 ]これは、 Wがビット位置のインデックスとして機能している例 2 を偽装したものです。Wの任意の部分集合X は、 Xの要素によってインデックス付けされたビット位置のみに 1 を持つビットベクトルとして見ることができます。したがって、すべてゼロのベクトルはWの空の部分集合であり、すべて 1 のベクトルはW自体であり、これらはそれぞれ冪集合代数の定数 0 と 1 です。論理和x ∨ yの対応物は和集合X ∪ Yであり、論理積x ∧ yの対応物は積集合X ∩ Yです。否定¬ xは~ Xとなり、 Wに対する補集合となります。また、集合差X \ Y = X ∩~ Y、対称差( X \ Y )∪( Y \ X )、三項和X ∪ Y ∪ Zなどもあります。ここでいう原子とは、要素がちょうど 1 つだけの部分集合であるシングルトンのことです。
例 2 と 3 は、ブール代数だけでなく、群、環などを含むあらゆる種類の代数に適用できる、直積と呼ばれる一般的な代数の構成の特殊なケースです。任意のブール代数の族B iの直積は、 i が何らかのインデックス集合I (必ずしも有限または可算である必要はない) を移動するブール代数です。i 番目の要素が B i から取られたすべての I タプル (... x i ,...) からなるブール代数です。直積の演算は、それぞれの座標内で作用する構成代数の対応する演算です。特に、積の演算n f jは、 n個のIタプルのi番目の座標のn個の要素にB iの演算n f jを適用することによって、n個のIタプルに対して作用します。
このように掛け合わされるすべての代数が同一の代数Aである場合、その直積をAの直べき乗と呼びます。すべての 32 ビットベクトルのブール代数は、2 要素ブール代数を 32 乗したもの、つまり 32 要素集合のべき集合代数であり、2 32と表記されます。すべての整数集合のブール代数は2 Zです。これまで示してきたすべてのブール代数は、2 要素ブール代数の直べき乗であり、「べき集合代数」という名前が正当化されます。
すべての有限ブール代数は、何らかの冪集合代数と同型であることが示せる。 [ 9 ]したがって、有限ブール代数の濃度(要素数)は2のべき乗、すなわち1,2,4,8,...,2 n ,...のいずれかである。これは、有限ブール代数を冪集合代数として表現することで、有限ブール代数の性質についての洞察を与えるため、表現定理と呼ばれる。
この表現定理は無限ブール代数には適用されません。すべての冪集合代数はブール代数ですが、すべてのブール代数が冪集合代数と同型であるとは限りません。特に、可算無限の冪集合代数は存在しません(最小の無限冪集合代数は自然数の集合の冪集合代数2Nであり、カントールによって非可算であることが示されています)が、様々な可算無限のブール代数は存在します。
冪集合代数を超えるには、別の構成が必要です。代数Aの部分代数とは、 Aの演算に関して閉じているAの任意の部分集合のことです。ブール代数Aのすべての部分代数は、 Aの等式を満たさなければなりません。なぜなら、違反があれば、 A自体の違反となるからです。したがって、ブール代数のすべての部分代数はブール代数です。[ 10 ]
冪集合代数の部分代数は集合体と呼ばれます。同等に、集合体は、空集合とWを含むある集合Wの部分集合の集合であり、 Wに関して有限和集合と補集合に関して閉じています(したがって、有限交差に関しても閉じています)。ブール代数に関する Stone の表現定理は、すべてのブール代数が集合体と同型であると述べています。ここで、多様体に関するBirkhoff の HSP 定理は、代数のクラスCの等式理論のモデルのすべてのクラスは、Cの代数の直積の部分代数の準同型像であると述べることができます。通常、H、S、P の 3 つすべてが必要です。これら 2 つの Birkhoff 定理のうち最初のものが示しているのは、ブール代数の多様体の特殊な場合、準同型を同型に置き換えることができるということです。したがって、一般の多様体に対するバーコフのHSP定理は、ブール代数の多様体に対するバーコフのISP定理となる。
自然数の集合Xについて話すときは、それをビットのシーケンスx 0、x 1、x 2、...と見なすと便利です。ここで、 x i = 1はi ∈ Xの場合に限ります。この観点により、冪集合代数2 Nの部分代数について話すことが容易になります。この観点では、2 N はすべてのビットのシーケンスのブール代数になります。[ 11 ]また、真理値表の列にもよく合います。列を上から下に読むと、ビットのシーケンスになりますが、同時に、その列で表される関数が 1 と評価される値 (表の左半分の変数への割り当て) の集合と見なすこともできます。
例 4 .究極的に定数な数列。究極的に定数な数列の任意のブール結合は究極的に定数です。したがって、これらはブール代数を形成します。究極的にゼロの数列を非負の二進数 (数列のビット0が最下位ビット) とみなし、究極的に 1 の数列を負の二進数 (すべて 1の数列が-1である2 の補数演算を考えてください) とみなすことで、これらを整数と同一視できます。これにより、整数はブール代数となり、和集合はビットごとの OR、補集合は-x - 1となります。整数は可算個しかないので、この無限ブール代数は可算です。原子は 2 のべき乗、つまり 1、2、4、... です。この代数を別の方法で説明すると、すべての有限および余有限の自然数の集合の集合として表すことができ、究極的にすべて 1 の数列は余有限集合に対応し、これらの集合は有限個の自然数のみを除外します。
例 5.周期的な数列。数列は、周期性の証拠と呼ばれるある数n > 0が存在し、すべてのi ≥ 0に対してx i = x i + nが成り立つ場合に周期的である。周期的な数列の周期は、その最小の証拠である。否定は周期を変化させないが、2 つの周期的な数列の論理和は周期的であり、周期は最大で 2 つの引数の周期の最小公倍数となる(任意の数列とその補数の和集合の場合のように、周期は1まで小さくなることもある)。したがって、周期的な数列はブール代数を形成する。
例5は可算であるという点で例4に似ていますが、無原子であるという点で異なります。これは、任意の非ゼロ周期列xと互いに素な周期(1より大きい)を持つ列との論理積が、 0でもxでもないためです。可算無限無原子ブール代数はすべて同型であることが示せます。つまり、同型を除いて、そのような代数は1つしか存在しません。
例 6 .周期が 2 のべき乗である周期列。これは例 5 の適切な部分代数です(適切な部分代数は、それ自身とその代数の共通部分に等しくなります)。これらは有限演算として理解でき、このような列の最初の周期は、それが表す演算の真理値表を与えます。たとえば、二項演算の表、つまり2 f 10のx 0の真理値表は周期2を持ちます(したがって、最初の変数のみを使用していると認識できます)。これは、二項演算の 12 個が周期4を持つにもかかわらずです。周期が2 nの場合、演算は最初のn 個の変数のみに依存します。これは、演算が有限であるという意味です。この例は、可算無限の原子のないブール代数でもあります。したがって、例 5 はそれ自身の適切な部分代数と同型です。例6、そしてそれゆえ例5は、可算個の生成元上の自由ブール代数を構成する。これは、可算無限個の生成元または変数の集合上のすべての有限演算のブール代数を意味する。
例 7。究極的に周期的なシーケンスとは、最初の有限期間の無秩序状態の後、周期的になるシーケンスのことです。これらは例 5 の適切な拡張であり (つまり、例 5 は例 7 の適切な部分代数です)、定数シーケンスは周期 1 の周期性を持つため、例 4 の適切な拡張でもあります。シーケンスが安定するタイミングは異なる場合がありますが、任意の有限シーケンスの集合は、最も安定するのが遅い要素よりも遅くなく、最終的にはすべて安定します。したがって、究極的に周期的なシーケンスはすべてのブール演算に関して閉じており、ブール代数を形成します。この例は例 4 と同じアトムとコトムを持つため、アトムレスではなく、したがって例 5/6 と同型ではありません。ただし、無限のアトムレス部分代数、つまり例 5 を含んでいるため、例 4 と同型ではありません。例 4 のすべての部分代数は有限集合とその補集合のブール代数でなければならず、したがってアトムです。この例は、例4と例5の直積と同型であり、その別の説明を提供する。
例 8 .周期列 (例 5) と任意の有限だが非自明なブール代数の直積。(自明な 1 要素のブール代数は、唯一の有限無原子ブール代数です。) これは、原子と無原子部分代数の両方を持つという点で例 7 に似ていますが、原子の数が有限である点で異なります。例 8 は実際には無限の例の族であり、可能な有限個の原子ごとに 1 つずつ存在します。
これらの例は、可算ブール代数を含め、可能なブール代数のすべてを網羅しているわけではない。実際、非同型な可算ブール代数は非可算多数存在し、Jussi Ketonen [1978] は、特定の遺伝的に可算な集合によって表現可能な不変量を用いて、それらを完全に分類した。
n項ブール演算自体は、べき集合代数2 Wを構成します。ここでWは、 n個の入力の2 n個の値の集合とします。演算n f iの命名システムに関して、ここでi はバイナリで真理値の表の列です。列は、任意のアリティのブール演算と組み合わせることで、表に存在する他の列を生成できます。つまり、任意のmとnに対して、任意のアリティmのブール演算をm 個のアリティnのブール演算に適用して、アリティnのブール演算を得ることができます。
この規約がソフトウェアとハードウェアの両方にとって実用的な意義を持つのは、n項ブール演算を適切な長さのワードで表現できる点にある。例えば、256個の3項ブール演算はそれぞれ符号なしバイトで表現できる。そして、ANDやORといった既存の論理演算を用いて、新たな演算を構成できる。x、y、z(ここでは添え字変数は省略)をそれぞれ10101010、11001100、11110000(10進数で170、204、240、16進数で0xaa 、 0xcc 、 0xf0 )とすると、それらのペアごとの論理積はx ∧ y = 10001000 、 y ∧ z = 11000000、z ∧ x = 10100000であり、それらのペアごとの論理和はx ∨ y = 11101110、y ∨ z = 11111100、z ∨ x = 11111010です。 3 つの論理積の論理和は11101000であり、これもまた 3 つの論理積の論理和です。このようにして、バイトに対する十数個の論理演算によって、2 つの三項演算が
そして
これらは実際には同じ演算です。つまり、等式が成り立つことを証明しました。
これは2要素ブール代数の場合である。「ブール代数」の定義により、この恒等式はすべてのブール代数において成り立つはずである。
この三項演算は、偶然にも、Grau [1947] の三項ブール代数の基礎を形成し、彼はこの演算と否定を用いてそれを公理化した。この演算は対称であり、その値は引数の3! = 6通りの順列のいずれにも依存しないことを意味する。真理値表11101000の 2 つの半分は、∨、1110、および∧、1000の真理値表であるため、この演算は、zならばx ∨ y、そうでなければx ∧ yと表現できる。対称であるため、同様に、xならばy ∨ z 、そうでなければy ∧ z、またはyならばz ∨ x、そうでなければ z ∧ xのどちらとも表現できる。8 頂点の 3 立方体のラベル付けとして見ると、上半分は 1、下半分は 0 とラベル付けされる。このため、これは中央値演算子と呼ばれており、変数の数が奇数の場合にも一般化できるのは明らかです(変数のちょうど半分が0の場合に同点になるのを避けるために奇数にする必要があります)。
先ほどブール代数の恒等式を証明するために用いた手法は、体系的な方法で全ての恒等式に一般化することができ、これはブール論理の等式法則の健全かつ完全な公理化、すなわち公理系とみなすことができます。公理系の慣習的な定式化は、いくつかの初期恒等式で「準備」する一連の公理と、公理および以前に証明された恒等式から残りの恒等式を推論するための一連の推論規則から構成されます。原則として、公理の数は有限であることが望ましいですが、実際には、証明で使用された各インスタンスが正当なインスタンスであることを容易に検証できる無限個のインスタンスを持つ有限の公理図式でも十分効果的であるため、必ずしも必要ではありません。ここで採用するアプローチは、まさにこの有限の公理図式です。
ブール恒等式は、 s = tの形式の主張であり、sとt はn項であり、ここでn項とは、変数がx 0からx n-1までに限定される項を意味します。n項は、アトムまたはアプリケーションのいずれかです。アプリケーションm f i ( t 0 ,..., t m -1 )は、m項演算m f iと、オペランドと呼ばれるm個のn項のリストまたはmタプル( t 0 ,..., t m -1 )からなるペアです。
すべての項には、その高さと呼ばれる自然数が関連付けられています。原子の高さはゼロであり、応用項の高さは、その最上位のオペランドの高さに1を加えた値となります。
さて、原子とは何でしょうか? 慣習的に、原子は定数 (0 または 1) または0 ≤ i < nの変数x iのいずれかです。ここで証明手法では、原子をn項演算n f iと定義するのが便利です。これは、ここでは原子として扱われますが、それでもn f i ( x 0 ,..., x n -1 )の正確な形式の通常の項と同じ意味を持ちます(変数は、繰り返しや省略なしに、示されている順序でリストする必要があります)。これは制限ではありません。この形式の原子には、すべての通常の原子、つまり定数 0 と 1 が含まれます。これらは、ここでは各nに対してn項演算n f 0とn f −1 ( 2 2 n −1を−1に省略) として現れます。また、真理値表からわかるように、変数x 0、...、x n -1も含まれます。ここで、 x 0は単項演算1 f 2と二項演算2 f 10の両方として現れ、x 1 は2 f 12として現れます。
以下の公理図式と3つの推論規則は、n項のブール代数を公理化するものである。
A1のサイド条件の意味は、 i o ĵ が、v番目のビットがiのĵ v番目のビットであるような2 nビットの数であるということです。ここで、各量の範囲はu : m、v : 2 n、j u : 2 n 、 ĵ v : 2 mです。(したがって、jは2 nビットの数のmタプルであり、 jの転置であるĵはmビットの数の2 nタプルです。したがって、 jとĵ はどちらもm 2 nビットを含みます。)
A1 は、メタ変数m、i、n、およびj 0からj m-1を含むため、公理ではなく公理スキーマです。公理化の実際の公理は、メタ変数を特定の値に設定することによって得られます。たとえば、m = n = i = j 0 = 1とすると、 i 1 = 0とi 0 = 1からi o ĵの 2 ビットを計算できるので、i o ĵ = 2 (または2 ビット数として書くと10 ) となります。結果として得られるインスタンス、つまり1 f 1 ( 1 f 1 ) = 1 f 2は、よく知られている二重否定の公理¬¬ x = xを表しています。ルールR3では、s 0を1 f 1 ( 1 f 1 )または¬¬ x 0、t 0を1 f 2またはx 0、m f iを1 f 1または¬とすることで、 ¬¬¬ x = ¬ x を推論できます。
各mおよびnに対して、 A1 をインスタンス化する公理は有限個しか存在せず、すなわち2 2 m × (2 2 n ) mである。各インスタンスは2 m + m 2 nビットで指定される。
R1は前提を持たない点で公理に似ていますが、群、環、その他の種類を問わず、すべての等式公理化に共通するR2およびR3とともに領域に依存しない規則であるため、推論規則として扱います。ブール代数に固有の唯一の要素は、公理スキーマA1です。このようにして、異なる等式理論について議論する際には、規則は特定の理論に依存しないものとして脇に置き、対象となる特定の等式理論を特徴付ける公理体系の唯一の部分である公理に注目することができます。
この公理化は完全であり、このシステムではすべてのブール法則s = tが証明可能であることを意味します。まず、 sの高さに関する帰納法によって、 tが原子であるすべてのブール法則が証明可能であることを示します。これは、基本ケースにR1 (異なる原子は決して等しくないため) を使用し、帰納ステップ ( sが適用)にA1とR3 を使用します。この証明戦略は、 sを評価して原子を生成する再帰的な手順に相当します。次に、tが適用である可能性がある一般ケースでs = tを証明するには、 s = tが恒等式であれば、sとt は同じ原子 ( uと呼ぶ) に評価されなければならないという事実を使用します。したがって、まず上記のようにs = uとt = uを証明します。つまり、 A1、R1、R3を使用してsとtを評価し、次にR2を呼び出してs = tを推論します。
A1において、数n m を関数型m → nとみなし、m nを適用m ( n )とみなすと、数i、j、ĵ、およびi o ĵを、型i : ( m →2)→2、j : m →(( n →2)→2) 、 ĵ : ( n →2)→( m →2)、およびi o ĵ : ( n →2)→ 2の関数として再解釈できます。A1の定義( i o ĵ ) v = i ĵ v は、 ( i o ĵ )( v ) = i ( ĵ ( v ) )に翻訳され、つまりi o ĵ は、関数として理解されるiとĵの合成として定義されます。したがって、 A1の内容は、適用という用語を本質的に合成として定義することに相当し、合成に適した型にするためにmタプルjを転置する必要があるという点を除けば、合成この構成は、ローヴェアが先に述べた冪集合とその関数のカテゴリーに属するものです。このようにして、ブール代数の等式理論として、そのカテゴリーの可換図を、その特定の構成法則の論理表現であるA1の等式的な帰結へと変換しました。
すべてのブール代数Bの根底には、半順序集合( B , ≤)があります。 半順序関係は、x = x ∧ yの場合、または同等にy = x ∨ yの場合にx ≤ yと定義されます。ブール代数の要素の集合Xが与えられたとき、 Xの上限は、Xのすべての要素xに対してx ≤ yとなる要素yであり、 Xの下限は、Xのすべての要素xに対してy ≤ xとなる要素yです。
XのsupはXの最小上界、すなわちXのすべての上界以下であるXの上界です。双対的に、XのinfはXの最大下界です。xとyの sup は常にブール代数の基礎となる半順序集合に存在し、x ∨ y であり、同様にinf も存在し、すなわちx ∧ yです。空の sup は 0 (最下要素) であり、空の inf は 1 (最上要素) です。したがって、すべての有限集合は sup と inf の両方を持ちます。ブール代数の無限部分集合は sup および/または inf を持つ場合と持たない場合がありますが、冪集合代数では常に持っています。
要素の任意のペアx、yが上限と下限の両方を持つような任意の半順序集合( B、≤)を束と呼びます。上限をx ∨ y 、下限をx ∧ yと表記します。ブール代数の基礎となる半順序集合は常に束を形成します。束は、x ∧( y ∨ z ) = ( x ∧ y )∨( x ∧ z )または同等にx ∨( y ∧ z ) = ( x ∨ y )∧( x ∨ z )の場合に分配的であると言われます。これは、束ではどちらの法則も他方を包含するからです。これらはブール代数の法則であり、したがってブール代数の基礎となる半順序集合は分配束を形成します。
底辺要素が 0、頂点要素が 1 である束において、要素のペアx、yがx ∧ y = 0かつx ∨ y = 1であるとき、それらは相補的であると呼ばれ、 yはxの補元であり、逆もまた同様であると言います。 頂点と底辺を持つ分配束の任意の要素x は、最大で 1 つの補元を持つことができます。 束のすべての要素が補元を持つ場合、その束は補元付きであると呼ばれます。 したがって、補元付き分配束では、要素の補元は常に存在し、一意であるため、補元は単項演算となります。 さらに、すべての補元付き分配束はブール代数を形成し、逆にすべてのブール代数は補元付き分配束を形成します。 これにより、ブール代数の別の定義、すなわち任意の補元付き分配束としての定義が得られます。これら3つの性質はそれぞれ有限個の等式で公理化することができ、これらの等式を合わせると、ブール代数の等式理論の有限な公理化が構成される。
一連の方程式のすべてのモデルとして定義される代数のクラスでは、通常、そのクラスの代数の中には、そのクラスに属するために必要な方程式だけでなく、より多くの方程式を満たすものがあります。ブール代数のクラスは、1つの例外を除いて、すべてのブール代数がブール恒等式のみを満たし、それ以上は満たさないという点で特異です。その例外は、要素が1つのブール代数で、これは必然的にすべての方程式(x = yを含む)を満たすため、矛盾ブール代数と呼ばれることもあります。
ブール準同型写像は、ブール代数AとBの間の関数h : A → Bであり、すべてのブール演算m f iに対して次のようになる。
ブール代数の圏 Boolは、対象としてすべてのブール代数を持ち、射としてそれらの間のブール準同型写像を持つ。
2要素ブール代数2からすべてのブール代数への一意な準同型が存在する。なぜなら、準同型は2つの定数を保存する必要があり、2の要素はそれら2つだけだからである。この性質を持つブール代数を初期ブール代数と呼ぶ。任意の2つの初期ブール代数は同型であることが示せるので、同型を除いて2が初期ブール代数となる。
反対方向には、ブール代数Bから2への準同型写像が多数存在する可能性がある。このような準同型写像は、B を1 に写像される要素と 0 に写像される要素に分割する。前者からなるBの部分集合は、Bの超フィルターと呼ばれる。Bが有限の場合、その超フィルターは原子と対になる。1 つの原子が 1 に写像され、残りは 0 に写像される。したがって、 Bの各超フィルターは、 Bの原子 1 つと、それより上位のすべての要素から構成される。そのため、 Bの要素のちょうど半分が超フィルターに含まれ、超フィルターの数は原子の数と同じになる。
無限ブール代数においては、超フィルターの概念は著しく複雑になる。原子以上の要素は常に超フィルターを形成するが、他の多くの集合も同様である。例えば、整数の有限集合および余有限集合のブール代数では、余有限集合は原子ではないにもかかわらず超フィルターを形成する。同様に、整数の冪集合の超フィルターには、与えられた整数を含むすべての部分集合の集合が含まれる。このような「標準」超フィルターは可算個存在し、整数自体と同一視できるが、「非標準」超フィルターはそれよりもはるかに多く存在する。これらは非標準解析の基礎を形成し、無限小やデルタ関数といった古典的には矛盾する対象を表現する手段を提供する。
上のブール代数の基礎となる半順序に関するセクションで、supとinfの定義を思い出してください。完全ブール代数とは、無限部分集合であっても、すべての部分集合がsupとinfの両方を持つ代数のことです。Gaifman [1964]とHales [1964]は、それぞれ独立に、無限自由完全ブール代数は存在しないことを示しました。これは、集合サイズの無限演算を持つ論理が、有限演算を持つ論理が無限個の項を持つ可能性があるのと同様に、クラス多の項を持つ可能性があることを示唆しています。
しかし、無限ブール演算を導入する別の方法もあります。それは、ブール代数の定義から「finitary」を単純に削除することです。 {0,1} 上のすべての演算の代数の等式理論のモデルは、モデルの濃度までのアリティを持ち、完全原子ブール代数、またはCABAと呼ばれます。(このアリティに関する厄介な制限の代わりに、任意のアリティを許容することもできますが、その場合、シグネチャが任意の集合よりも大きくなり、つまり適切なクラスになるという別の厄介な問題が生じます。後者のアプローチの利点の 1 つは、濃度が異なる CABA 間の準同型の定義を簡略化することです。)このような代数は、すべての要素が何らかの原子の集合の sup である、つまり原子である完全ブール代数として同等に定義できます。生成元集合Vのすべての濃度に対して自由 CABA が存在する。すなわち、冪集合代数2 2 Vが存在し、これは有限自由ブール代数の明白な一般化である。これにより、ガイフマン・ヘイルズの結果によって無限ブール論理が陥ると思われた運命から、見事に救い出される。
自由完全ブール代数が存在しないのは、ブール論理の式を無限個の論理積と論理和に対して成り立つべきすべての法則に適切に拡張できていないこと、特に完全ブール代数の定義において分配法則が無視されていることに起因する。完全ブール代数は、任意の論理積が任意の論理和に対して分配し、かつその逆も成り立つ場合に完全分配的と呼ばれる。ブール代数が完全かつ完全分配的である場合に限り、それはCABAであり、これがCABAの3番目の定義となる。4番目の定義は、冪集合代数と同型な任意のブール代数である。
完全準同型とは、有限のsupだけでなく存在するすべてのsupを保存するものであり、infについても同様である。すべてのCABAとその完全準同型の圏CABAは、集合とその関数の圏と双対であり、つまりその圏の反対(すべての射を反転させた結果として得られる圏)と同値である。ブール代数とその準同型の圏Boolについては、それほど単純ではない。マーシャル・ストーンは、実際には(双対性を明示的にするための言語と概念的枠組みの両方を欠いていたが)、この圏が、後にストーン空間と呼ばれるようになった完全不連結コンパクトハウスドルフ空間の圏と双対であることを示した。
ブール代数と完全ブール代数の中間に位置するもう一つの無限クラスは、シグマ代数の概念です。これは完全ブール代数と同様に定義されますが、上限と下限は可算個数に制限されます。つまり、シグマ代数は、上限と下限がすべて可算であるブール代数です。上限と下限は有界な濃度を持つため、完全ブール代数の場合とは異なり、ガイフマン・ヘイルズの結果は適用されず、自由シグマ代数は存在します。ただし、CABAの場合とは異なり、自由可算生成シグマ代数は冪集合代数ではありません。
すでに、2要素代数の等式理論のモデル、補元分配束、ブール環、および特定の圏からの積保存関手(Lawvere)として、ブール代数のいくつかの定義に触れてきました。さらに言及する価値のある定義が2つあります。
(この定義における循環論法は、「有限ブール代数」を、冪集合に対して標準的に解釈されるブール演算を備えた「有限冪集合」に置き換えることで解消できる。)
これを分かりやすく説明すると、無限集合は有限集合のフィルター付き余極限として、無限CABAは有限冪集合代数のフィルター付き極限として、無限ストーン空間は有限集合のフィルター付き極限として現れます。したがって、有限集合から始めて、これらが無限オブジェクトにどのように一般化されるかを問う場合、2つの方法があります。「加算」すると通常の集合または帰納的集合が得られ、「乗算」するとストーン空間またはプロ有限集合が得られます。有限集合の双対である有限冪集合代数についても同じ選択肢があります。加算すると帰納的オブジェクトとしてブール代数が得られ、乗算するとプロ有限オブジェクトとしてCABAまたは冪集合代数が得られます。
特徴的な区別点は、このように構築されたオブジェクトの基礎となる位相が、ハウスドルフとなるように定義された場合、帰納的オブジェクトの場合は離散的であり、プロ有限オブジェクトの場合はコンパクトであるということです。有限ハウスドルフ空間の位相は常に離散的かつコンパクトですが、無限空間では「離散的」と「コンパクト」は互いに排他的です。したがって、有限代数(ブール代数に限らず、あらゆる種類の代数)を無限代数に一般化する場合、「離散的」と「コンパクト」は分離し、どちらか一方を残す必要があります。有限代数と無限代数の両方に共通する一般的な規則は、有限代数は離散的であるのに対し、その双対はコンパクトであり、無限演算を特徴としているということです。これら2つの極端な間には、位相が離散的でもコンパクトでもない中間的な無限ブール代数が多数存在します。
{{cite book}}ISBN /日付の不一致(ヘルプ)