ある性質を満たす対象が存在する場合には、その対象に新たな名前をつけてもよいことを保証する推論規則を存在除去と呼びます。

2019年6月3日:公開

存在除去

存在導入は特定から抽象を導く推論規則であり、変数\(x\in X\)に関する命題関数\(P\left( x\right) \)に対しては、\begin{equation*}
P\left( \overline{x}\right) ,\ \overline{x}\in X\ \models \ \exists x\in X\ P\left( x\right)
\end{equation*}と定式化されますが、これとは逆に、抽象から特定を導く、\begin{equation*}
\exists x\in X\ P\left( x\right) \ \models \ P\left( \overline{x}\right) ,\ \overline{x}\in X
\end{equation*}は妥当な推論ではありません。\(P\left( x\right) \)が真になるような変数\(x\)の値が存在する場合でも、値\(\overline{x}\)がそのような値であるとは限らないからです。

抽象\(\exists x\in X\ P\left( x\right) \)から特定\(P\left( \overline{x}\right) \)を導くことはできませんが、\(P\left( x\right) \)が真になるような\(x\)の値が存在することは確かですので、変数\(x\)や\(x\)が取り得る個々の値とは異なる記号\(c\)を導入した上で、\(P\left( c\right) \)が真であるものとして議論を進めることができます。つまり、そのような記号\(c\)に関しては、以下の推論\begin{equation*}
\exists x\in X\ P\left( x\right) \ \models \ P\left( c\right)
\end{equation*}を妥当と考えても構わないということです。

具体例を挙げると、実数を値として取り得る変数\(x\)に関する命題関数\begin{equation*}
P\left( x\right) :x\text{は}x^{2}=1\text{の解である}
\end{equation*}に関する以下の存在命題\begin{equation*}
\exists x\in \mathbb{R} \ P\left( x\right) :x^{2}=1\text{の解である実数}x\text{が存在する}
\end{equation*}は明らかに真ですが、このとき、\(x\)に具体的な実数を代入して得られる命題は真であるとは限りません。例えば、\begin{equation*}
P\left( 2\right) :2\text{は}2^{2}=1\text{の解である}
\end{equation*}は明らかに偽です。一方、変数\(x\)や具体的な実数とは異なる記号\(c\)を用いて、\begin{equation*}
P\left( c\right) :\text{実数}c\text{は}x^{2}=1\text{の解である}
\end{equation*}を真とした上で議論を進めることができます。

議論を一般化します。論理式\(A\)が変数\(x\in X\)の自由な現れを含む開論理式であることを\(A\left[ x\right] \)と表記します。また、\(A\left[ x\right] \)における変数\(x\)の自由な現れに値\(\overline{x}\in X\)を代入したものを\(A\left[ \overline{x}\right] \)と表記します。さらに、変数\(x\)やそのいかなる具体的な値とも異なる記号を\(c\)で表します。このとき、以下の推論規則\begin{equation*}
\exists x\in X\ A\left[ x\right] \ \models \ A\left[ c\right] ,\ c\in X
\end{equation*}を妥当と定めます。これは存在除去(existential elimination)や\(\exists \)除去(\(\exists \) elimination)、存在例化(existential instantiation)などと呼ばれる推論規則です。

存在除去は、ある性質を満たす対象が存在する場合には、その対象に新たな名前をつけてもよいことを保証する推論規則です。

例(存在除去)
命題関数\(P\left( x\right) ,Q\left( x\right) \)について、\begin{equation*}
\forall x\in X\ \left( P\left( x\right) \wedge Q\left( x\right) \right)
\end{equation*}が真ならば、存在除去より、変数\(x\)やそのいかなる値とも異なる記号\(c\)に関して以下の命題\begin{equation*}
P\left( c\right) \wedge Q\left( c\right)
\end{equation*}は真です。
例(存在除去)
命題関数\(P\left( x,y\right) ,Q\left( x\right) \)について、\begin{equation}
\exists x\in X\ \left( P\left( x,y\right) \rightarrow Q\left( x\right) \right) \tag{1}
\end{equation}という開論理式が与えられたとき、存在除去より、変数\(x\)やそのいかなる値とも異なる記号\(c\)に関して以下の開論理式\begin{equation}
P\left( c,y\right) \rightarrow Q\left( c\right) \tag{2}
\end{equation}が導かれます。つまり、任意の解釈において、\(\left( 1\right) \)が真ならば\(\left( 2\right) \)も真になります。

 

存在除去に関する制約

存在除去は無条件で使えるわけではありません。存在除去は、\begin{equation*}
\exists x\in X\ A\left[ x\right] \ \models \ A\left[ c\right] ,\ c\in X
\end{equation*}と定式化されますが、記号\(c\)は変数\(x\)やそのいかなる値とも異なるものでなければなりません。\(c\)は\(A\left[ x\right]\)が真になるような\(x\)の値につけた新たな名前です。

先ほどと同じ具体例を使いますが、実数を値として取り得る変数\(x\)に関する命題関数を、\begin{equation*}
P\left( x\right) :x\text{は}x^{2}=1\text{の解である}
\end{equation*}と定義します。全称命題\(\exists x\ P\left( x\right) \)は明らかに真ですが、ここで存在除去を誤って適用すると、例えば、\begin{equation*}
\exists x\ P\left( x\right) \ \models \ P\left( 2\right)
\end{equation*}すなわち、\begin{eqnarray*}
&&x^{2}=1\text{を満たす実数解}x\text{が存在する。} \\
&&\text{したがって、}2\text{は}x^{2}=1\text{の解である。}
\end{eqnarray*}という推論が妥当になってしまいます。しかし、この推論の結論は偽な命題です。偽な命題を結論として持つ推論は妥当ではありません。

存在除去を正しく適用するためには、実数を表す新たな記号\(c\)を導入した上で、\begin{equation*}
\exists x\ P\left( x\right) \ \models \ P\left( c\right) ,\ c\in \mathbb{R}
\end{equation*}とする必要があります。つまり、\begin{eqnarray*}
&&x^{2}=1\text{を満たす実数解}x\text{が存在する。} \\
&&\text{したがって、実数}c\text{は}x^{2}=1\text{の解である。}
\end{eqnarray*}という推論であれば妥当になります。

次回は全称除去と呼ばれる推論規則について学びます。

次へ進む 演習問題(プレミアム会員限定)