論理学において、真理関数[ 1 ]とは、真理値を入力として受け取り、一意の真理値を出力として生成する関数である。言い換えれば、真理関数の入力と出力はすべて真理値であり、真理関数は常に正確に1つの真理値を出力し、同じ真理値を入力すると常に同じ真理値が出力される。典型的な例は命題論理であり、論理結合子で接続された個々の命題を用いて複合命題が構成される。複合命題の真理値が構成要素となる命題の真理値によって完全に決定される場合、その複合命題は真理関数と呼ばれ、使用される論理結合子は真理関数的であると言われる。[ 2 ]
古典的な命題論理は真理関数論理であり、[ 3 ]すべての命題は真または偽のいずれかの真理値のみを持ち、すべての論理結合子は真理関数(対応する真理値表を持つ)であるため、すべての複合命題は真理関数である。[ 4 ]一方、様相論理は真理関数ではない。
論理結合子は、複合文の真偽値がその部分文の真偽値の関数である場合に真理関数的である。結合子のクラスは、その各メンバーが真理関数的である場合に真理関数的である。たとえば、結合子「and」は真理関数的である。なぜなら、「リンゴは果物であり、ニンジンは野菜である」のような文は、その部分文「リンゴは果物である」と「ニンジンは野菜である」がそれぞれ真である場合に限り真であり、そうでない場合は偽だからである。英語などの自然言語の結合子の中には、真理関数的ではないものもある。
「xは…と信じている」という形式の接続詞は、真理関数ではない接続詞の典型的な例です。例えば、メアリーがアル・ゴアが2000年4月20日にアメリカ合衆国大統領だったと誤って信じているが、月が緑色のチーズでできているとは信じていない場合、次の文は真理関数ではありません。
真である一方
どちらの場合も、各構成要素文(つまり、「アル・ゴアは2000年4月20日にアメリカ合衆国大統領だった」と「月は緑色のチーズでできている」)は偽ですが、「メアリーは~と信じている」という句を接頭辞として形成した複合文はそれぞれ真偽値が異なります。つまり、「メアリーは~と信じている」という形式の文の真偽値は、構成要素文の真偽値のみによって決定されるわけではないため、(単項)結合子(単項なので単に演算子)は真偽関数ではありません。
論理式を構成する際に用いられる古典論理の結合子(例:&、→)は真理関数的である。これらの結合子の引数としての様々な真理値に対する値は、通常、真理値表によって与えられる。真理関数的命題論理は、その論理式が真または偽のいずれかとして解釈される形式体系である。
二値論理では、2つの入力PとQに対して、16種類の真理関数(ブール関数とも呼ばれる)が存在します。これらの関数はいずれも、古典論理における特定の論理結合子の真理値表に対応しており、引数の一方または両方に依存しない関数など、いくつかの特殊なケースも含まれます。以下の真理値表では、簡潔にするため、真理と偽をそれぞれ1と0で表します。
関数は合成として表現できるため、真理関数論理計算では、上述のすべての関数が機能的に完全であるために専用の記号を用意する必要はありません。これは命題論理では、特定の複合命題の論理的等価性として表現されます。例えば、古典論理では、¬ P ∨ QはP → Qと等価です。したがって、条件演算子 "→"は、すでに "¬" (否定) と "∨" (論理和) が使用されている古典論理に基づく論理システムでは不要です。
命題論理で表現可能なすべての命題を表現できる最小限の演算子の集合を、最小限の機能的に完全な集合と呼ぶ。最小限の機能的に完全な演算子の集合は、NAND演算子(↑)とNOR演算子(↓)のみによって実現される。
以下は、引数の数が 2 を超えない最小限の機能的に完全な演算子のセットです。[ 5 ]
真理関数の中には、対応する論理結合子を含む定理で表現できる性質を持つものがある。二項真理関数(または対応する論理結合子)が持ちうる性質には、次のようなものがある。
真理関数の集合が機能的に完全であるのは、以下の5つの性質のそれぞれについて、その性質を持たない要素が少なくとも1つ含まれている場合に限る。
具体的な関数は演算子とも呼ばれます。2値論理では、2つのヌル演算子(定数)、4つの単項演算子、16の二項演算子、256の三項演算子、そしてn項演算子。3 値論理では、3 つのヌル項演算子 (定数)、27 個の単項演算子、19683 個の二項演算子、7625597484987個の三項演算子、そしてn項演算子。k値論理では、k個のヌル項演算子があります。単項演算子、二項演算子、三項演算子、およびn項演算子。k値論理におけるn項演算子は、次の関数です。したがって、そのような演算子の数は上記の数値は、このようにして算出されたものです。
しかし、特定の引数を持つ演算子の中には、実際には一部の入力に対してより少ない引数を持つ演算を実行し、残りの入力を無視する退化した形式があります。上記で挙げた 256 個の三項ブール演算子のうち、それらのいくつかは、包含排除原理を用いた二項演算子または低位演算子の退化形式である。三項演算子は、実際には1つの入力に適用され、他の2つの入力を無視する単項演算子である、そのような演算子の1つです。
「否定」は単項演算子で、1つの項(¬ P )を取ります。残りは二項演算子で、2つの項を取って複合命題( P ∧ Q、P ∨ Q、P → Q、P ↔ Q )を作成します。
論理演算子の集合Ωは、以下のように互いに素な部分集合に分割することができる。
このパーティションでは、は、アリティjの演算子記号の集合です。
より馴染みのある命題論理では、通常は以下のように分割されます。
真理値表を用いる代わりに、論理結合記号は、意味の構成性の原理で詳述されているように、解釈関数と機能的に完全な真理関数の集合(Gamut 1991)によって解釈することができる。Iを解釈関数とし、Φ、Ψ を任意の 2 つの文とし、真理関数f nandを次のように定義する。
次に、便宜上、f not、f or fおよびなどについては、 f nandによって定義されます。
または、f not、fまたはfなどといったものが直接定義されます。
それから
等
したがって、S が論理結合子を表す論理記号v 1 ... v nと非論理記号c 1 ... c nからなる記号列である文である場合、f nand (またはその他の関数的完全真理関数の集合)によってv 1 をv nに解釈するI ( v 1 ) ... I ( v n )が提供されている場合に限り、 の真理値はは、 c 1 ... c nの真偽値、すなわちI ( c 1 )... I ( c n )によって完全に決定されます。言い換えれば、予想どおり、また要求どおり、 S は、そのすべての非論理記号の解釈の下でのみ真または偽となります。
上記で定義した関数を用いることで、命題の真理関数の形式的な定義を与えることができる。[ 6 ]
PROPをすべての命題変数の集合とする。
真理値割り当てを任意の関数と定義するしたがって、真理値の割り当てとは、各命題変数と特定の真理値を関連付けることである。これは実質的に、命題の真理値表の特定の行と同じである。
真理の割り当てについては、拡張真理値割り当てを定義します。以下のように拡張します。新しい機能へ定義域はすべての命題論理式の集合に等しい。まだ。
最後に、拡張真理割り当てを定義したので、これを使用して命題の真理関数を定義できます。命題Aの真理関数は、は、すべての真理値の集合に等しいドメインを持ち、値域は。
各真理値割り当てについて定義される。、 による値これは、 Aの真理値表の最終列に表示されているものと同じで、次の行に表示されています。。
論理演算子は、デジタル回路では論理ゲートとして実装されます。事実上すべてのデジタル回路(主な例外はDRAM )は、 NAND、NOR、NOT、および伝送ゲートで構成されています。通常の2入力ではなく3入力以上のNANDゲートとNORゲートはかなり一般的ですが、これらは論理的には2入力ゲートのカスケード接続と同等です。その他のすべての演算子は、上記の論理ゲートのうち2つ以上を論理的に同等な組み合わせに分解することで実装されます。
「NAND 単独」、「NOR 単独」、「NOT と AND」の「論理的等価性」は、チューリング等価性に似ています。
すべての真理関数がNORだけで表現できるという事実は、アポロ誘導コンピュータによって実証されている。