述語論理における論理式の解釈
復習になりますが、命題論理の基本単位は\(0\)または\(1\)を値としてとり得る命題変数\(P,Q,\cdots \)です。命題論理では命題変数に論理演算子を作用させることで論理式を得ますが、論理式の値を確定するためにはそこに含まれる個々の命題変数に\(1\)または\(0\)の値を代入する必要があります。論理式に含まれる命題変数の値の組み合わせをその論理式の解釈と呼びます。論理式の値を特定するためにはそれに対して何らかの解釈を与える必要があります。
やはり復習になりますが、述語論理の基本単位は様々な値を取り得る変数\(x_{1},\cdots ,x_{n}\)を持つ命題関数\(P\left( x_{1},\cdots ,x_{n}\right) \)です。命題関数もまた\(1\)または\(0\)を値としてとりますが、その値を特定するためには以下の3つの要素\begin{eqnarray*}
&&\left( a\right) \ \text{議論領域}D \\
&&\left( b\right) \ \text{関数}P\text{の形状}
\\
&&\left( c\right) \ \text{変数}x_{1},\cdots ,x_{n}\text{に代入する値}\overline{x}_{1},\cdots ,\overline{x}_{n}
\end{eqnarray*}を具体的に指定する必要があります。これが述語論理における命題関数の解釈です。
&&\left( a\right) \ X\text{はすべての自然数からなる集合} \\
&&\left( b\right) \ P\left( x\right) :x^{2}\geq 1 \\
&&\left( c\right) \ x=1
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
P\left( 1\right) :1^{2}\geq 1
\end{equation*}という真な命題に対応します。別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{はすべての実数からなる集合} \\
&&\left( b\right) \ P\left( x\right) :x^{2}\geq 1 \\
&&\left( c\right) \ x=\frac{1}{2}
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
P\left( \frac{1}{2}\right) :\left( \frac{1}{2}\right) ^{2}\geq 1
\end{equation*}という偽な命題に対応します。さらに別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{はすべての都道府県からなる集合} \\
&&\left( b\right) \ P\left( x\right) :x\text{の人口は}800\text{万人以上} \\
&&\left( c\right) \ x=\text{東京}
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
P\left( \text{東京}\right) :\text{東京の人口は}800\text{万人以上}
\end{equation*}という真な命題に対応します。命題関数は無限通りに解釈可能です。
述語論理では命題関数を含む原子論理式に論理演算子や量化記号を作用させることで論理式を得ます。論理式は変数の自由な現れを持つ開論理式と、変数の自由な現れを持たない閉論理式とに分類されます。論理式\(A\)が変数の自由な現れを持たない閉論理式である場合、その値を特定するためには以下の2つの要素\begin{eqnarray*}
&&\left( a\right) \ \text{議論領域}D \\
&&\left( b\right) \ \text{論理式}A\text{を構成するすべての命題関数の形状}
\end{eqnarray*}を具体的に指定する必要があります。以上が述語論理における閉論理式の解釈です。
\forall x\in X:P\left( x\right)
\end{equation*}は変数の自由な現れを持たないため、これは閉論理式です。この閉論理式の1つの解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{はすべての実数からなる集合} \\
&&\left( b\right) \ P\left( x\right) :x^{2}\geq 0
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
\text{任意の実数}x\text{について}x^{2}\geq 0\text{が成り立つ}
\end{equation*}という真な命題に対応します。別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{はすべての実数からなる集合} \\
&&\left( b\right) \ P\left( x\right) :\left\vert x\right\vert >0
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
\text{任意の実数}x\text{について}\left\vert x\right\vert >0\text{が成り立つ}
\end{equation*}という偽な命題に対応します。さらに別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{はすべての都道府県からなる集合} \\
&&\left( b\right) \ P\left( x\right) :x\text{の人口は}800\text{万人以上}
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
\text{すべての都道府県の人口は}800\text{万人以上である}
\end{equation*}という偽な命題に対応します。閉論理式は無限通りに解釈可能です。
論理式\(A\)が変数\(x_{1},\cdots ,x_{n}\)の自由な現れを持つ開論理式\(A\left( x_{1},\cdots ,x_{n}\right) \)である場合、その値を特定するためには以下の3つの要素\begin{eqnarray*}
&&\left( a\right) \ \text{議論領域}D \\
&&\left( b\right) \ \text{論理式}A\text{を構成するすべての命題関数の形状} \\
&&\left( c\right) \ \text{変数の自由な現れに代入する値}\overline{x}_{1},\cdots ,\overline{x}_{n}
\end{eqnarray*}を具体的に指定する必要があります。以上が述語論理における開論理式の解釈です。
\exists x\in X:P\left( x,y\right)
\end{equation*}は変数\(y\)の自由な現れを持つため、これは開論理式です。この閉論理式の1つの解釈は、\begin{eqnarray*}
&&\left( a\right) \ X,Y\text{はすべての実数からなる集合} \\
&&\left( b\right) \ P\left( x,y\right) :x^{2}=y \\
&&\left( c\right) \ y=2
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
x^{2}=2\text{を満たす実数}x\text{が存在する}
\end{equation*}という真な命題に対応します。別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X,Y\text{はすべての実数からなる集合} \\
&&\left( b\right) \ P\left( x,y\right) :x^{2}=y \\
&&\left( c\right) \ y=-1
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
x^{2}=-1\text{を満たす実数}x\text{が存在する}
\end{equation*}という偽な命題に対応します。さらに別の解釈は、\begin{eqnarray*}
&&\left( a\right) \ X\text{は都道府県の集合、}Y\text{はすべての自然数の集合} \\
&&\left( b\right) \ P\left( x,y\right) :x\text{の人口は}y\text{以上} \\
&&\left( c\right) \ y=800\text{万}
\end{eqnarray*}というものですが、この解釈は、\begin{equation*}
\text{人口が}800\text{万人以上の都道府県が存在する}
\end{equation*}という真な命題に対応します。開論理式は無限通りに解釈可能です。
論理式の解釈の応用
日常言語を使って表現された問題をあえて論理式に翻訳した上で、それを解釈すれば、もとの問題を解く助けになります。例を挙げます。
P\left( x\right) &:&x\text{は20代である} \\
Q\left( x\right) &:&x\text{は30代である} \\
R\left( x\right) &:&x\text{は商品購入者である} \\
S\left( x\right) &:&x\text{は商品を高く評価している}
\end{eqnarray*}をそれぞれ導入します。このとき、「20代または30代でこの商品を購入した方々は全員、商品を高く評価している」という主張は以下の論理式\begin{equation}
\forall x\in X:\left( \left( \left( P\left( x\right) \vee Q\left( x\right)
\right) \wedge R\left( x\right) \right) \rightarrow S\left( s\right) \right)
\quad\cdots (1)
\end{equation}として定式化され、「この商品を高く評価していない方もいる」という主張は以下の論理式\begin{equation}
\exists x\in X:\lnot S\left( s\right) \quad\cdots (2)
\end{equation}として定式化され、「他の世代の方もこの商品を購入している」という主張は以下の論理式\begin{equation}
\exists x\in X:\left( \lnot P\left( x\right) \wedge \lnot Q\left( x\right)
\wedge R\left( x\right) \right) \quad\cdots (3)
\end{equation}として定式化されます。実態として、商品を購入しているのは20代または30代の人だけで、購入者はいずれも商品を高く評価しているものとします。ただ、20代または30代の中には商品を購入していない人がおり、その人は商品を高く評価しようがありません。このような解釈において、\(\left( 1\right) \)と\(\left( 2\right) \)は真である一方、\(\left( 3\right) \)は偽となります。
B\left( t\right) &:&\text{時点}t\text{において信号は青である} \\
Y\left( t\right) &:&\text{時点}t\text{において信号は黄色である} \\
R\left( t\right) &:&\text{時点}t\text{において信号は赤である}
\end{eqnarray*}を定義します。まず、それぞれの時点\(t\)において信号の色が青、黄色、赤のいずれかであることを論理式として定式化すると、\begin{equation*}
\left( B\left( t\right) \Leftrightarrow \left( \lnot Y\left( t\right) \wedge
\lnot R\left( t\right) \right) \right) \wedge \left( Y\left( t\right)
\Leftrightarrow \left( \lnot B\left( t\right) \wedge \lnot R\left( t\right)
\right) \right) \wedge \left( R\left( t\right) \Leftrightarrow \left( \lnot
B\left( t\right) \wedge \lnot Y\left( t\right) \right) \right)
\end{equation*}となります。また、それぞれの時点\(t\)において、信号の色は変わるとは限らないが、変わる場合には青から黄色、黄色から赤、赤から青へ変わることを論理式として定式化すると、\begin{eqnarray*}
B\left( t\right) &\Rightarrow &B\left( t\right) \vee Y\left( t\right) \\
Y\left( t\right) &\Rightarrow &Y\left( t\right) \vee R\left( t\right) \\
R\left( t\right) &\Rightarrow &R\left( t\right) \vee B\left( t\right)
\end{eqnarray*}となります。また、信号が青または赤であり続ける時間の長さは\(2\)単位時間であり、信号が黄色であり続ける時間の長さが\(1\)単位時間であることを論理式として表現すると、\begin{eqnarray*}
B\left( t-2\right) \wedge B\left( t-1\right) &\Rightarrow &\lnot B\left(
t\right) \\
Y\left( t-1\right) &\Rightarrow &\lnot Y\left( t\right) \\
R\left( t-2\right) \wedge R\left( t-1\right) &\Rightarrow &\lnot R\left(
t\right)
\end{eqnarray*}となります。
演習問題
以上を踏まえた上で以下の問いに答えてください。
- 「それぞれのマスに入れられるのは1つの数字だけである」ことを論理式として定式化してください。
- 「それぞれの行内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
- 「それぞれの列内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
- 「それぞれのブロック内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
プレミアム会員専用コンテンツです
【ログイン】【会員登録】