命題関数
命題論理(propositional logic)における議論の最小単位は命題(proposition)です。命題とは、物事の判断について述べた文や式で、真偽を客観的に判断できるもののことです。
一方、物事の判断について述べた文や式の中には、そのままでは命題ではないものの、一定の条件のもとでは真偽を客観的に判断できるものが存在します。以下が具体例です。
\end{equation}は命題でしょうか。以下の値\begin{equation*}
x=3
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}3>1
\end{equation*}という真な命題が得られます。以下の値\begin{equation*}
x=0
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}0>1
\end{equation*}という偽な命題が得られます。つまり、\(\left( 1\right) \)はそのままでは真偽を判定できないため命題ではないものの、\(x\)に具体的な値を代入すれば命題が得られるため、その真偽を判定できるようになります。
上で例として挙げた主張\begin{equation*}
x>1
\end{equation*}に含まれる\(x\)のように、未知の数・対象を表す文字や記号のことを変数(variable)と呼びます。
変数を含む主張は変数に具体的な値を代入することによりはじめて命題となり、その真偽を判定できるようになります。逆に言うと、変数を含む主張はそのままでは真偽を判定できないため、命題ではありません。変数を含む文や式を命題関数(propositional function)と呼びます。
命題関数は命題ではないため、命題論理の枠組みの中で命題関数を扱うことはできません。命題関数を扱えるように命題論理を拡張したものが述語論理(predicate logic)です。述語論理における議論の最小単位は命題関数です。
\end{equation}という主張はそのままでは真偽を判定できないため命題ではありません。以下の値\begin{equation*}
x=1
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}1\text{は偶数である}
\end{equation*}という偽な命題が得られ、以下の値\begin{equation*}
x=2
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}2\text{は偶数である}
\end{equation*}という真な命題が得られます。つまり、\(\left( 1\right) \)は変数\(x\)に関する命題関数です。
\quad \cdots (1)
\end{equation}という主張はそのままでは真偽を判定できないため命題ではありません。以下の値\begin{equation*}
x=\text{北海道}
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}\text{北海道は関東地方にある}
\end{equation*}という偽な命題が得られ、以下の値\begin{equation*}
x=\text{東京}
\end{equation*}を\(\left( 1\right) \)に代入すれば、\begin{equation*}\text{東京は関東地方にある}
\end{equation*}という真な命題が得られます。つまり、\(\left( 1\right) \)は変数\(x\)に関する命題関数です。
\end{equation}という主張はそのままでは真偽を判定できないため命題ではありません。さらに、\(x\)に具体的な値を代入しても命題は得られないため\(\left( 1\right) \)は命題関数でもありません。実際、以下の値\begin{equation*}x=\text{富士山}
\end{equation*}を\(\left( 1\right) \)に代入すると以下の主張\begin{equation*}\text{富士山は高い}
\end{equation*}が得られますが、この主張の真偽を客観的に判定することはできないためこれは命題ではなく、したがって\(\left( 1\right) \)は命題関数ではありません。続いて、以下の主張\begin{equation}x\text{の標高は}3,000\text{メートル以上である} \quad \cdots (2)
\end{equation}について考えます。この主張はこのままでは真偽を判定できないため命題ではありません。以下の値\begin{equation*}
x=\text{富士山}
\end{equation*}を\(\left( 2\right) \)に代入すると、\begin{equation*}\text{富士山の標高は}3,000\text{メートル以上である}
\end{equation*}という真な命題が得られ(富士山の標高は3,766メートルです)、以下の値\begin{equation*}
x=\text{高尾山}
\end{equation*}を\(\left( 2\right) \)に代入すると、\begin{equation*}\text{高尾山の標高は}3,000\text{メートル以上である}
\end{equation*}という偽な命題が得られます(高尾山は東京にある標高599メートルの山です)。したがって、\(\left( 2\right) \)は変数\(x\)に関する命題関数です。
述語論理では個々の命題関数が具体的に何について言及しているかを問題とせず、それらを単に変数に代入する値に応じて真偽が定まる関数とみなします。変数\(x\)に関する命題関数を表す記号として、大文字のアルファベットを用いて、\begin{equation*}P\left( x\right) ,Q\left( x\right) ,\cdots
\end{equation*}などを利用します。
複数の変数を持つ命題関数
述語論理では、複数の変数を持つ命題関数を扱うこともできます。命題関数が複数の変数を持つ場合、すべての変数に具体的な値を代入することによりはじめて命題が得られ、その真偽を判定できるようになります。
\end{equation}の真偽をこのままでは判定できないため、これは命題ではありません。以下の値\begin{equation*}
\left( x,y\right) =\left( 2,1\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}2>1
\end{equation*}という真な命題が得られ、以下の値\begin{equation*}
\left( x,y\right) =\left( 1,2\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}1>2
\end{equation*}という偽な命題が得られます。つまり、\(\left( 1\right) \)は2つの変数\(x,y\)に関する命題関数です。
\end{equation}の真偽をこのままでは判定できないため、これは命題ではありません。以下の値\begin{equation*}
\left( x,y\right) =\left( \text{東京},\text{北海道}\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}\text{東京の人口は北海道の人口よりも多い}
\end{equation*}という真な命題が得られ、以下の値\begin{equation*}
\left( x,y\right) =\left( \text{北海道},\text{東京}\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}\text{北海道の人口は東京の人口よりも多い}
\end{equation*}という偽な命題が得られます。つまり、\(\left( 1\right) \)は2つの変数\(x,y\)に関する命題関数です。
\end{equation}の真偽をこのままでは判定できないため、これは命題ではありません。以下の値\begin{equation*}
\left( x,y,z\right) =\left( 3,2,1\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}3>2>1
\end{equation*}という真な命題が得られ、以下の値\begin{equation*}
\left( x,y,z\right) =\left( 2,3,1\right)
\end{equation*}を\(\left( 1\right) \)に代入すると、\begin{equation*}2>3>1
\end{equation*}という偽な命題が得られます。つまり、\(\left( 1\right) \)は3つの変数\(x,y,z\)に関する命題関数です。
2つの変数\(x,y\)に関する命題関数を表す記号として、大文字のアルファベットを用いて、\begin{equation*}P\left( x,y\right) ,Q\left( x,y\right) ,\cdots
\end{equation*}などを利用します。
3つの変数\(x,y,z\)に関する命題関数を表す記号として、大文字のアルファベットを用いて、\begin{equation*}P\left( x,y,z\right) ,Q\left( x,y,z\right) ,\cdots
\end{equation*}などを利用します。
より一般的に、有限\(n\)個の変数\(x_{1},\cdots ,x_{n}\)に関する命題関数を表す記号として、大文字のアルファベットを用いて、\begin{equation*}P\left( x_{1},\cdots ,x_{n}\right) ,Q\left( x_{1},\cdots ,x_{n}\right)
,\cdots
\end{equation*}などを利用します。
述語論理において議論の対象となる論理的な主張や推論はいずれも、命題関数どうしを組み合わせることにより得られる式として表現されますが、そのような式を論理式(formula)や一階論理式(first-order formula)などと呼びます。論理式については後ほど正確に定義しますが、最も重要な点は、命題関数の組み合わせである論理式自身もまた変数に代入する値に応じて真偽が決まる命題関数であるということです。論理式の値は、その論理式に含まれる命題変数に代入する値の組み合わせに応じて決定されます。述語論理では、論理式の値を決定する上でしたがうべきルールを定めた上で、そのルールを出発点としたときに推論に関して何が言えるかを明らかにしようとします。
演習問題
- 整数\(x\)は奇数である。
- 実数\(x\)は大きい。
- 円周率\(\pi \)は\(4\)よりも小さい。
- この小学校の\(x\)年生の生徒数は\(y\)人よりも多い。
プレミアム会員専用コンテンツです
【ログイン】【会員登録】