WIIS

述語論理

述語論理における論理式の解釈

目次

関連知識

Mailで保存
Xで共有

述語論理における論理式の解釈

復習になりますが、命題論理の基本単位は\(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*}を具体的に指定する必要があります。これが述語論理における命題関数の解釈です。

例(命題関数の解釈)
変数\(x\in X\)に関する命題関数\(P\left( x\right) \)について考えます。この命題関数の1つの解釈は、\begin{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*}を具体的に指定する必要があります。以上が述語論理における閉論理式の解釈です。

例(閉論理式の解釈)
変数\(x\in X\)に関する命題関数\(P\left( x\right) \)に関する以下の論理式\begin{equation*}
\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*}を具体的に指定する必要があります。以上が述語論理における開論理式の解釈です。

例(開論理式の解釈)
変数\(x\in X\)と\(y\in Y\)に関する命題関数\(P\left( x,y\right) \)に関する以下の論理式\begin{equation*}
\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*}という真な命題に対応します。開論理式は無限通りに解釈可能です。

 

論理式の解釈の応用

日常言語を使って表現された問題をあえて論理式に翻訳した上で、それを解釈すれば、もとの問題を解く助けになります。例を挙げます。

例(論理式の解釈の応用)
セールスマンが以下のように発言しました。「20代または30代でこの商品を購入した方々は全員、この商品を高く評価しています。残念ながら、この商品を高く評価していない方もいます。ただ、他の世代の方もこの商品を購入していることは確かです。」この発言には論理的な嘘が含まれている可能性がありますが、それはどのような嘘でしょうか。変数\(x\)の定義域\(X\)をすべての人からなる集合と定めた上で、以下の命題関数\begin{eqnarray*}
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) \)は偽となります。
例(論理式の解釈の応用)
信号機の回路を設計します。時間\(t\)を変数とし、それを離散的\(0,1,2,3,\cdots \)なものとして扱います。その上で以下の命題関数\begin{eqnarray*}
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*}となります。

 

演習問題

問題(論理式の解釈)
「数独(すうどく)」とは縦横9行ずつの合計81マスの枠内に1から9までの数字を1つずつ入れるパズルです。ゲームの開始時点において下図のようにいくつかのマスにはすでに数字が書かれており、空いているマスに1から9までの数字を1つずつ入れていくことが目標になります。ただし、全体は下図のように太線で囲まれた3\(\times \)3のブロックに区切られており、同じブロック内のマスに同じ数字を入れることはできません。また、同じ行内のマスや同じ列内のマスにも同じ数字を入れることはできません。

図:数独
図:数独

以上を踏まえた上で以下の問いに答えてください。

  1. 「それぞれのマスに入れられるのは1つの数字だけである」ことを論理式として定式化してください。
  2. 「それぞれの行内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
  3. 「それぞれの列内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
  4. 「それぞれのブロック内のマスには1から9までの数字が1つずつ入る」ことを論理式として定式化してください。
解答を見る

プレミアム会員専用コンテンツです
ログイン】【会員登録

関連知識

Mailで保存
Xで共有

質問とコメント

プレミアム会員専用コンテンツです

会員登録

有料のプレミアム会員であれば、質問やコメントの投稿と閲覧、プレミアムコンテンツ(命題の証明や演習問題とその解答)へのアクセスなどが可能になります。

ワイズのユーザーは年齢・性別・学歴・社会的立場などとは関係なく「学ぶ人」として対等であり、お互いを人格として尊重することが求められます。ユーザーが快適かつ安心して「学ぶ」ことに集中できる環境を整備するため、広告やスパム投稿、他のユーザーを貶めたり威圧する発言、学んでいる内容とは関係のない不毛な議論などはブロックすることになっています。詳細はガイドラインをご覧ください。

誤字脱字、リンク切れ、内容の誤りを発見した場合にはコメントに投稿するのではなく、以下のフォームからご連絡をお願い致します。

プレミアム会員専用コンテンツです
ログイン】【会員登録