変数を含む文や式は変数に具体的な値を代入することによりはじめて命題となり、その正しさを判定できるようになります。一般に、変数を含む文や式を命題関数と呼びます。命題関数は述語論理の対象となる最小単位の概念です。述語論理において議論の対象となる論理的な主張や推論はいずれも命題関数どうしを組み合わせることで得られる式として解釈され、そのような式を論理式や一階論理式などと呼びます。

命題関数

復習になりますが、命題とは物事の判断について述べた文や式で、正しいか正しくないかを客観的に判断できるもののことです。では、\(x\)が任意の実数を値としてとり得るとき、不等式\(x>1\)は命題でしょうか。\(x>1\)において\(x=3\)を代入すれば\(3>1\)となり、これは真な命題です。また、\(x>1\)において\(x=0\)と代入すれば\(0>1\)となり、これは偽な命題です。つまり、\(x>1\)において\(x\)に具体的な値を代入すれば命題が得られますが、\(x>1\)そのままでは真偽を判定できないため、この不等式\(x>1\)は命題ではありません。

命題について復習する

先の不等式\(x>1\)に含まれる\(x\)のように、未知の数・対象を表す文字や記号のことを変数(variable)と呼びます。先に確認したように、変数を含む文や式は変数に具体的な値を代入することではじめて命題となり、その正しさを判定できるようになります。逆に言うと、変数を含む文や式は、そのままでは真偽を判定できないため、命題ではありません。一般に、変数を含む文や式を命題関数(propositional function)と呼びます。

記号論理学では議論を定式化するために、個々の命題関数を大文字のアルファベットと括弧に囲まれた変数を用いて表記します。例えば、\begin{equation*}
P\left( x\right) :\text{実数}x\text{について}x>1\text{である}
\end{equation*}という表現は、「実数\(x\)について\(x>1\)である」という、変数\(x\)に関する命題関数を\(P\left( x\right) \)という記号で表すことの宣言です。また、\begin{equation*}
Q\left( a,b\right) :\text{実数}a,b\text{について方程式}x^{2}+ax+b=0\text{は実数解を持つ}
\end{equation*}という表現は、「実数\(a,b\)について方程式\(x^{2}+ax+b=0\)は実数解を持つ」という、変数\(a,b\)に関する命題関数を\(Q\left( a,b\right) \)という記号で表すことの宣言です。

 

命題と命題関数の違い

「任意の実数\(x\)について\(x>1\)が成り立つ」という主張について考えます。この主張中の「実数\(x\)について\(x>1\)が成り立つ」は変数\(x\)に具体的な実数を代入することではじめて真偽を判定できるため、これは命題関数です。一方、「任意の実数\(x\)について\(x>1\)が成り立つ」というもとの主張はそのままで真偽を判定できるため、これは命題関数ではなく命題です。命題と命題関数の違いの本質は、主張の中に変数が含まれるか否かという形式的な違いにあるのではなく、その真偽を判定するために変数に特定の値を代入する必要があるか否かという点にあります。

続いて、「実数\(x\)について\(x\cdot 0=0\)が成り立つ」という主張について考えます。これは\(x\)にどのような実数を代入しても明らかに真であることから、命題関数ではなく命題であると考えがちです。しかし、この主張の真偽を判定するためには変数\(x\)に具体的な数を代入する必要があることには変わりはないため、これは命題関数です。一方、この式を含む主張「任意の実数\(x\)について\(x\cdot 0=0\)が成り立つ」はそのままで真偽を判定できるため、これは命題関数ではなく命題です。

例(命題関数)
「整数\(x\)は偶数である」という主張は\(x\)に具体的な整数を代入することではじめて真偽を判定できます。したがってこれは命題ではなく、\(x\)を変数として持つ命題関数です。一方、\(x=4\)の場合の「整数\(4\)は偶数である」という主張は真な命題であり、\(x=3\)の場合の「整数\(3\)は偶数である」は偽な命題です。
例(命題関数)
「\(a,b>0\)であるとき、方程式\(x^{2}+ax+b=0\)は実数解を持つ」という主張は、方程式の係数\(a,b\)がどのような値であるかが特定されない限りその正しさを判定できません。したがってこれは命題ではなく、\(a,b\)を変数として持つ命題関数です。一方、\(a=b=1\)の場合に得られる「方程式\(x^{2}+x+1=0\)は実数解を持つ」という主張は命題です。
例(命題関数)
「関数\(f\)は関数\(g\)の導関数である」いう主張は、\(f,g\)がそれぞれどのような関数であるかが特定されない限りその正しさを判定できません。したがってこれは命題ではなく、\(f,g\)を変数として持つ命題関数です。一方、関数\(f,g\)を具体的に特定することで得られる「実数\(x\)に関する関数\(f\left( x\right) =2x\)は関数\(g\left( x\right) =2x^{2}\)の導関数である」という主張は命題です。
例(命題関数)
「\(4\)以上の偶数は 2 つの素数の和として表せる」という主張は、\(4\)以上の偶数\(x\)を具体的に特定することなくその正しさを判定できます。したがってこれは命題関数ではなく命題です。ちなみに、この命題はゴールドバッハの予想(Goldbach conjecture)と呼ばれる未解決問題です。未解決問題ということはの真偽が明らかでないことを意味しますが、真偽の判定を客観的に行うことができることは明らかですので、これはやはり命題です。

 

述語論理

述語論理において議論の対象となる論理的な主張や推論はいずれも、命題関数どうしを一定のルールのもとで組み合わせることで得られる式として表現されます。そのような式を論理式(formula)や一階論理式(first-order formula)などと呼びます。論理式については後ほど正確に定義しますが、最も重要な点は、命題関数の組み合わせである論理式もまた、そこに含まれる変数に具体的な値を導入することではじめて命題となる命題関数であり、論理式の真理値は、変数に代入する値の組み合わせに応じて決まるということです。

述語論理の目的は、論理式に含まれる個々の変数に代入する値の組み合わせによってその論理式の真理値がどのように定まるかを規定するルールを定めた上で、そのルールを出発点としたときに、推論に関して何が言えるかを明らかにすることにあります。

命題論理では命題変数を議論の最小単位とし、それに論理演算を適用する形で論理式を再帰的に定義しました。述語論理でも論理式を再帰的に定義します。述語論理における最小単位は原子論理式(atomic formula)であり、これは命題関数を内包する概念です。述語論理において論理式を生成する際には、原子論理式に対して論理演算だけでなく量化(quantification)と呼ばれる操作も行われます。以降ではこれらの概念や操作について解説した上で、述語論理における論理式を再帰的に定義します。

次回から論理式について学びます。

次へ進む コメント・質問を投稿する 演習問題(プレミアム会員限定)

ワイズをさらに活用するための会員サービス

ユーザー名とメールアドレスを入力して一般会員に無料登録すれば、質問やコメントを投稿できるようになります。さらに、有料(500円/月)のプレミアム会員へアップグレードすることにより、プレミアムコンテンツ(命題の証明や演習問題、解答など)にアクセスできます。
会員サービス

ディスカッションに参加しますか?

質問やコメントを投稿するにはログインが必要です。
ログイン

現在地
目次
アカウント
ログイン