WIIS

述語論理

述語論理における条件付き証明

目次

Mailで保存
Xで共有

条件付き証明

推論が妥当であることを証明する際には、推論の前提とは異なる論理式を便宜的に真と仮定した上で、その仮定と前提に対して推論規則を適用していく手法が時として有効です。推論の前提とは異なるものの、証明のプロセスにおいて便宜的に真であると仮定される論理式を仮定(assumption)と呼びます。

仮定を利用した代表的な証明方法は条件付き証明(conditional proof)ですが、その内容について解説する前に、その根拠となる命題を提示します。

命題(条件付き証明)
論理式\(A_{1},\cdots ,A_{n},B,C\)について、以下の2つの命題\begin{eqnarray*}&&\left( a\right) \ A_{1},\cdots ,A_{n}\ \models \ B\rightarrow C \\
&&\left( b\right) \ A_{1},\cdots ,A_{n},B\ \models \ C
\end{eqnarray*}はお互いに必要十分である。

証明

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

上の命題はどのような意味において有用なのでしょうか。論理式\(A_{1},\cdots ,A_{n}\)が前提であり、結論が論理式\(B,C\)を用いて含意\(B\rightarrow C\)の形で表される推論規則\begin{equation}A_{1},\cdots ,\ A_{n}\ \models \ B\rightarrow C \quad \cdots (1)
\end{equation}が成り立つことを証明しようとしている状況を想定してください。先の命題より、この推論規則は以下の推論規則\begin{equation}
A_{1},\cdots ,A_{n},B\ \models \ C \quad \cdots (2)
\end{equation}と必要十分であるため、\(\left( 1\right) \)のかわりに\(\left( 2\right) \)を示しても構わないということになります。つまり、前提が\(A_{1},\cdots ,A_{n}\)であり結論が\(B\rightarrow C\)であるような推論規則\(\left( 1\right) \)が成り立つことを示すかわりに、結論\(B\rightarrow C\)の前件である\(B\)を仮の前提(仮定)として加えた上で、そこから推論規則を適用して\(C\)を導いてもよい(推論規則\(\left( 2\right) \)が成り立つことを示す)ということです。このような証明方法を条件付き証明(conditional proof)と呼びます。

例(条件付き証明)
「期末試験で90点以上をとる学生の成績はいずれも優である。したがって、期末試験で90点以上をとる学生が存在するならば、成績が優の学生が存在する。」という推論が妥当であることを証明します。変数\(x\)の定義域\(X\)はすべての学生からなる集合であり、以下の命題関数\begin{eqnarray*}P\left( x\right) &:&x\text{の期末試験の得点は}90\text{点以上である} \\
Q\left( x\right) &:&x\text{の成績は優である}
\end{eqnarray*}を定義すると、与えられた推論は、\begin{equation*}
\forall x\in X:\left( P\left( x\right) \rightarrow Q\left( x\right) \right)
\ \therefore \ \left( \exists x\in X:P\left( x\right) \right) \rightarrow
\left( \exists x\in X:Q\left( x\right) \right)
\end{equation*}と定式化されます。この推論の結論\begin{equation*}
\left( \exists x\in X:P\left( x\right) \right) \rightarrow \left( \exists
x\in X:Q\left( x\right) \right)
\end{equation*}は含意の形をしているため条件付き証明を利用します。つまり、もとの前提である\begin{equation*}
\forall x\in X:\left( P\left( x\right) \rightarrow Q\left( x\right) \right)
\end{equation*}に加えて、結論の前件である、\begin{equation*}
\exists x\in X:P\left( x\right)
\end{equation*}が真であることを仮定して議論を始めるということです。以上の方針を踏まえた上で、以下の論理式の列

$$\begin{array}{llll}\left( 1\right) & \exists x\in X:P\left( x\right) & \left[ 1\right] & 仮定 \\
\left( 2\right) & \forall x\in X:\left( P\left( x\right) \rightarrow Q\left( x\right) \right) & & 前提 \\
\left( 3\right) & P\left( c\right) & \left[ 1\right] & \left( 1\right) と\exists 除去 \\
\left( 4\right) & P\left( c\right) \rightarrow Q\left( c\right) & & \left( 2\right) と\forall 除去 \\
\left( 5\right) & Q\left( c\right) & \left[ 1\right] & \left( 3\right) ,\left( 4\right) と\rightarrow 除去 \\
\left( 6\right) & \exists x\in X:Q\left( x\right) & \left[ 1\right] & \left( 5\right) と\exists 導入 \\
\left( 7\right) & \exists x\in X:P\left( x\right) \rightarrow \exists x\in X:Q\left( x\right) & & \left( 1\right) ,\left( 6\right) と\rightarrow 導入
\end{array}$$
について考えます。1行目の論理式\(\left( 1\right) \)の右側に記された\(\left[ 1\right] \)は、\(\left( 1\right) \)が前提ではなく仮定であることを表す記号です。\(\left(2\right) \)は推論の前提であり仮定ではないため、その右側に\(\left[ 2\right] \)と記す必要はありません。さて、\(\left( 1\right) \)に存在除去を適用すると\(\left( 2\right) \)が得られるため、\(\left( 1\right) \)が真の場合には\(\left( 3\right) \)もまた真であることが保証されます。ただし、\(\left( 3\right) \)が依拠する\(\left( 1\right) \)は前提ではなく仮定であるため、そのことを明示するために\(\left( 3\right) \)の右側に\(\left[ 1\right] \)と記しています。\(\left( 2\right) \)に全称除去を適用すると\(\left(4\right) \)が得られるため、\(\left( 2\right) \)が真の場合には\(\left( 4\right) \)もまた真であることが保証されます。\(\left( 3\right) \)と\(\left( 4\right) \)に含意除去を適用すると\(\left(5\right) \)が得られるため、\(\left( 3\right) \)と\(\left( 4\right) \)が真の場合には\(\left( 5\right) \)もまた真であることが保証されます。ただし、\(\left(3\right) \)は仮定\(\left( 1\right) \)に依拠するため、\(\left( 3\right) \)に依拠する\(\left( 5\right) \)もまた仮定\(\left( 1\right) \)に依拠します。そのことを明示するために\(\left( 5\right) \)の右側に\(\left[ 1\right] \)と記しています。\(\left( 5\right) \)に存在導入を適用すると\(\left( 6\right) \)を得るため、\(\left( 5\right) \)が真の場合には\(\left( 6\right) \)もまた真であることが保証されます。ただし、\(\left( 5\right) \)は仮定\(\left( 1\right) \)に依拠するため、\(\left( 5\right) \)に依拠する\(\left( 6\right) \)もまた仮定\(\left( 1\right) \)に依拠します。そのことを明示するために\(\left( 6\right) \)の右側に\(\left[ 1\right] \)と記しています。ここからが重要です。これまでの議論により、\begin{equation*}\left( 1\right) ,\left( 2\right) \ \models \ \left( 5\right)
\end{equation*}が成り立つことが示されました。ただし、\(\left( 2\right) \)は前提である一方で\(\left( 1\right) \)は仮定です。ただ、含意導入より導かれた先の命題より、この推論規則は、\begin{equation*}\left( 2\right) \ \models \ \left( 1\right) \rightarrow \left( 5\right)
\end{equation*}と必要十分であることが保証されます。こちらの推論規則において\(\left( 1\right) \)はもはや仮定ではなく、結論\(\left( 1\right) \rightarrow \left( 5\right) \)の前件です。つまり、前提\(\left(2\right) \)が真である場合には、\(\left( 1\right) \)が真であることを仮定せずとも、\(\left( 1\right) \rightarrow \left( 5\right) \)すなわち、\begin{equation*}\left( \exists x\in X:P\left( x\right) \right) \rightarrow \left( \exists
x\in X:Q\left( x\right) \right)
\end{equation*}が真になることが保証されます。\(\left( 7\right) \)の右側に\(\left[ 1\right] \)と記さないのは、以上の理由により、\(\left( 7\right) \)は仮定\(\left( 1\right) \)が真であることに依拠しないからです。

 

条件付き証明のフォーマルな定義

仮定という概念を踏まえた上で、証明の定義を拡張します。前提\(A_{1},\cdots ,A_{n}\)と結論\(B\)に関する推論に対して、以下の条件を満たす論理式の有限な列\(\alpha _{1},\cdots ,\alpha _{m}\)が存在する場合には、これを前提\(A_{1},\cdots ,A_{n}\)から結論\(B\)への証明(proof)や演繹(deduction)などと呼びます。

  1. 最後の論理式\(\alpha _{m}\)は推論の結論\(B\)と一致する。つまり、\(\alpha _{m}=B\)が成り立つ。
  2. それぞれの\(i\ (1\leq i\leq m)\)について以下のいずれかが成り立つ:
    1. 論理式\(\alpha _{i}\)は前提\(A_{1},\cdots ,A_{n}\)の中のいずれかである。
    2. 論理式\(\alpha _{i}\)は仮定である。
    3. 論理式\(\alpha _{i}\)はそれより前にある論理式に同値変形の法則や推論規則を適用して得られるものである。

前提\(A_{1},\cdots ,A_{n}\)から結論\(B\)への証明が存在する場合には、\(A_{1},\cdots ,A_{n}\)から\(B\)が証明可能(provable)であると言います。証明\(\alpha _{1},\cdots ,\alpha _{m}\)を構成する個々の論理式の番号を明示的に表現したい場合には、
$$\begin{array}{cc}\left( 1\right) & \alpha _{1} \\
\cdots & \cdots \\
\left( m\right) & \alpha _{m}
\end{array}$$と表記します。その際、以下の点に注意します。

  1. 論理式\(A\)が\(i\)行目で仮定される場合には\(A\left[ i\right] \)と書く。
  2. ある行の論理式\(A\)が\(i_{1},i_{2},\cdots ,i_{k}\)行目の仮定を用いて導出される場合には\(A\left[ i_{1},i_{2},\cdots ,i_{k}\right] \)と書く。
  3. ある行の論理式\(A\)を導出する際に用いたすべての論理式について、それらを導出する際に\(j_{1},j_{2},\cdots ,j_{l}\)行目の仮定を用いているならば、これらの仮定は\(A\)にも受け継がれるものと定めた上で\(A\left[ j_{1},j_{2},\cdots ,j_{l}\right] \)と書く。

前提\(A_{1},\cdots ,A_{n}\)から結論\(B\)が証明可能である場合、証明の定義より、\(A_{1},\cdots ,A_{n}\)がいずれも真である場合には\(B\)もまた必ず真になります。すなわち、推論は妥当ですから、推論規則\begin{equation*}A_{1},\cdots ,A_{n}\ \models \ B
\end{equation*}が成り立ちます。特に、推論に前提が存在しない場合には、結論\(B\)は証明可能であると言い、このことを、\begin{equation*}\models \ B
\end{equation*}で表します。これは\(B\)が恒等式であることに他なりません。

例(条件付き証明)
変数\(x\in X\)に関する命題関数\(P\left( x\right) ,Q\left( x\right) \)が与えられたとき、以下の推論規則\begin{equation*}\forall x\in X:\left( P\left( x\right) \rightarrow Q\left( x\right) \right)
\ \models \ \left( \exists x\in X:P\left( x\right) \right) \rightarrow
\left( \exists x\in X:Q\left( x\right) \right)
\end{equation*}が成り立つことを示します。結論\begin{equation*}
\left( \exists x\in X:P\left( x\right) \right) \rightarrow \left( \exists
x\in X:Q\left( x\right) \right)
\end{equation*}が含意の形をしているため、その前件\begin{equation*}
\exists x\in X:P\left( x\right)
\end{equation*}が真であることを仮定して議論を行います。具体的には以下の証明によって証明可能です。

$$\begin{array}{llll}\left( 1\right) & \forall x\in X:\left( P\left( x\right) \rightarrow Q\left( x\right) \right) & \quad & 前提 \\
\left( 2\right) & \exists x\in X:P\left( x\right) & \left[ 2\right] & 仮定 \\
\left( 3\right) & P\left( c\right) & \left[ 2\right] & \left( 2\right) と\exists 除去 \\
\left( 4\right) & P\left( c\right) \rightarrow Q\left( c\right) & \quad & \left( 1\right) と\forall 除去 \\
\left( 5\right) & Q\left( c\right) & \left[ 2\right] & \left( 3\right) ,\left( 4\right) と\rightarrow 除去 \\
\left( 6\right) & \exists x\in X:Q\left( x\right) & \left[ 2\right] & \left( 5\right) と\exists 導入 \\
\left( 7\right) & \left( \exists x\in X:P\left( x\right) \right) \rightarrow \left( \exists x\in X:Q\left( x\right) \right) & & \left( 2\right) ,\left( 6\right) と\rightarrow 導入
\end{array}$$

例(条件付き証明)
変数\(x\in X\)に関する命題関数\(P\left( x\right) ,Q\left( x\right) \)が与えられたとき、以下の推論規則\begin{equation*}\models \ \forall x\in X:\left( P\left( x\right) \rightarrow \left( P\left(
x\right) \vee Q\left( x\right) \right) \right)
\end{equation*}は以下の条件付き証明によって証明可能です。

$$\begin{array}{llll}\left( 1\right) & P\left( c\right) & \left[ 1\right] & 仮定 \\
\left( 2\right) & P\left( c\right) \vee Q\left( c\right) & \left[ 1\right] & \left( 1\right) と\vee 導入 \\
\left( 3\right) & P\left( c\right) \rightarrow \left( P\left( c\right) \vee Q\left( c\right) \right) & \quad & \left( 1\right) ,\left( 2\right) と\rightarrow 導入 \\
\left( 4\right) & \forall x\in X:\left( P\left( x\right) \rightarrow \left( P\left( x\right) \vee Q\left( x\right) \right) \right) & \quad & \left( 3\right) と\forall 導入
\end{array}$$

例(条件付き証明)
「\(2\)より大きい任意の偶数は素数ではない」という推論が妥当であることを証明します。変数\(x\)の定義域\(X\)はすべての自然数からなる集合であり、以下の命題関数\begin{eqnarray*}P\left( x\right) &:&x>2 \\
Q\left( x\right) &:&x\text{は偶数} \\
R\left( x\right) &:&x\text{は素数}
\end{eqnarray*}を定義すると、与えられた推論は、\begin{equation*}
\therefore \ \forall x\in X:\left( \left( P\left( x\right) \wedge Q\left(
x\right) \right) \rightarrow \lnot R\left( x\right) \right)
\end{equation*}と定式化されます。自然数\(c\)を任意に選んだとき、\begin{equation}\left( P\left( c\right) \wedge Q\left( c\right) \right) \rightarrow \lnot
R\left( c\right) \quad \cdots (1)
\end{equation}を示すことに成功すれば、\(\forall \)導入より、\begin{equation*}\forall x\in X:\left( \left( P\left( x\right) \wedge Q\left( x\right)
\right) \rightarrow \lnot R\left( x\right) \right)
\end{equation*}を得るため目標は達成されます。そこで\(\left( 1\right) \)を示します。\(\left(1\right) \)は含意の形をしているため、その前件\begin{equation}P\left( c\right) \wedge Q\left( c\right) \quad \cdots (2)
\end{equation}が真であることを仮定して議論を行います。つまり、\(c>2\)を満たす偶数\(c\)を考察対象とするということです。この場合、\(n\geq 2\)を満たす自然数\(n\)を用いて\(c=2n\)と表すことができますが、\(n\)は\(1\)や\(c\)そのものとは異なる\(c\)の約数であるため\(c\)は素数ではありません。したがって\begin{equation}\lnot R\left( c\right) \quad \cdots (3)
\end{equation}が成り立ちます。\(\left(2\right) ,\left( 3\right) \)に対して含意導入を適用すると\(\left(1\right) \)を得るため証明が完了しました。

 

演習問題

問題(条件付き証明)
「期末試験で70点以上をとるかすべての講義に出席するかの少なくとも一方を満たすすべての学生の成績は良以上である。したがって、期末試験で70点以上をとる学生の成績はいずれも良以上である」という推論が妥当であることを証明してください。

証明

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

関連知識

Mailで保存
Xで共有

質問とコメント

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

会員登録

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

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

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

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