オブジェクト指向でわかる神の存在証明

論理学

 キリスト教やイスラム教、ユダヤ教は一神教であり、この世界を創造した唯一の神を信奉する宗教である。世界の人口のうち約半数はこれら一神教の信者であると言われている。これらの宗教の信者にとっては、神の存在は非常に重要な宗教上の前提(学問でいえば原理や公理に相当する)であり、これが間違っているなどということはあってはならないということになるだろう。そのため、神の存在を数学的、あるいは、科学的(典型的には物理学的)に証明したいという問題はかなり昔から存在している。

 数学的な証明としてよく知られているのは、数理論理学者のクルト・ゲーデル(不完全性定理を証明した数学者として知られる。)が考えた神の存在論的証明(Ontological Proof)である。本稿の主題は、ゲーデルの神の存在証明をオブジェクト指向で理解しようということである。ゲーデルの神の存在証明を引用(一部の文章を省略している)すると以下のとおりである。


\[ \begin{array}{ll} P(\varphi) & \varphi \; \text{is positive} \; (\text{or} \;\varphi \in P). \\ \text{Axiom 1.} & P(\varphi).P(\psi) \supset P(\varphi.\psi). \\ \text{Axiom 2.} & P(\varphi) \vee P(\sim \varphi). \\ \text{Definition 1.} & G(x) \equiv (\varphi) [P(\varphi) \supset\varphi(x)] \;\;(\text{God}) \\ \text{Definition 2.} & \varphi \text{Ess.}x \equiv (\psi) [\psi(x) \supset N(y)[\varphi(y) \supset \psi(y)]]. \;\;(\text{Essence of }x) \\ & p \supset_N q = N(p \supset q)\quad \text{Nessecity} \\ \text{Axiom 3.} & P(\varphi) \supset NP(\varphi) \\ & \sim P(\varphi) \supset N\sim P(\varphi) \\ \text{Theorem} & G(x) \supset G\; \text{Ess}.x. \\ \text{Definition.} & E(x) \equiv (\varphi) [\varphi\; \text{Ess}.x \supset N(\exists x)\varphi(x)]. \;\;(\text{Necessary Existence}) \\ \text{Axiom 4.} & P(E). \\ \text{Theorem} & G(x) \supset N(\exists y)G(y). \end{array} \]


普通に式を眺めていても理解することは容易でないように見える。しかし、プログラミングの手法として用いられるオブジェクト指向を理解している読者であれば、上記の式の意味や論理を比較的容易に理解できるということであり、これを説明しよう。

 オブジェクト指向では、プログラミングにおいて記述しようとしている対象(物の概念)をオブジェクトという。オブジェクトはインスタンスと言われるメモリ上の実体を生成することができるクラス(Class)とそれができないインターフェース(Interface)に分けられる(ここでは、インスタンスを生成しないクラスである抽象クラスも含めてインターフェースということにする)。ゲーデルの証明でpositiveであるということは、実在性があるということを意味しており、オブジェクト\(\small \varphi\)がpositiveである、すなわち、\(\small \varphi \in P \)であるということはオブジェクト\(\small \varphi\)がクラスであることを表していると解釈できる。反対に\(\small \sim(\varphi \in P)=P(\sim \varphi)=\sim P(\varphi)\)である(\(\small P(\sim \varphi) \)は式として意味不明であるが\(\small \sim P(\varphi)\)と同じ意味と推測される)ということはオブジェクト\(\small \varphi\)がインターフェースであることを表している。このように解釈すれば、公理1から3は次のように表現できるだろう。

  • Axiom1. 2つのクラスを継承したオブジェクトはクラスである。(インターフェースはクラスを継承できない。)
  • Axiom2. オブジェクトはクラスかインターフェースかのいずれかである。
  • Axiom3. クラスはインスタンスを生成することができる(存在することが可能である)。インターフェースはインスタンスを生成することができない(存在することが不可能である)。

 次に神の定義\(\small G(x)\)を示そう。ゲーデルは神をすべての実在するクラスの性質や機能を併せ持つ存在(全知全能の神)として定義しており、定義としては実在性があるクラスすべてを継承したサブクラスであると定義している。\(\small (\varphi)[x] \)は\(\small \{\varphi \; \text{such that} \;x \} \)という集合を表しており、存在するすべてのインスタンス\(\small x \)が属するクラスの集合という意味になる。Definition 2.の\(\small x \)の特性というのは、インスタンス\(\small x \)が属するクラス(親クラスを含む)の集合を表す。直後に出てくる定理は

  • Theorem. 神\(\small G \)のインスタンス\(\small x \)の特性\(\small \text{Ess.}x \)は神\(\small G \)である。

という意味になる。神のクラスはすべてのクラスを親クラスとして継承しているということであり、これは神の定義から自明だろう。

 ゲーデルの神の存在証明は最初に神が実在することは可能であるということを証明した後に、神が実在することが可能であるならばその存在は必然的であるという手順をとる。最初の部分を公理から証明しよう。Axiom1とAxiom2、及び、神の定義から次の補題が成り立つ。

  • Lemma 1. 神はクラスである。

加えて、Axiom3からクラスであるオブジェクトはインスタンスを生成することができるため、

  • Lemma 2. 神は実在すること(インスタンスを生成すること)が可能である。

を得られる。これが最初のステップで示したいことであった。

 神が実在することは可能であるということを示せたのであるから、その存在が必然的であることを示そう。\(\small E(x)\)はインスタンス\(\small x\)が必然的に存在するような特性を持つオブジェクトの集合を表す。クラスであるが\(\small E(x)\)に属さないクラスは、インスタンスを生成できるにも関わらず、インスタンスが実在しているとは限らないクラスということになるだろう。\(\small E(x)\)に属するクラスはプログラムでいえば、global変数に自動的にインスタンスを生成するようなクラスということになるだろう。プログラミングコード風に書けば、

static object global[];

object E {
   static auto { global[classname] = new classname(); };
   new(self);
}

みたいなイメージになるだろう。メインルーチンを起動した時点で自動的にインスタンスが生成されグローバル変数に参照が追加されるようなオブジェクトと考えれば理解できるだろう。\(\small E\)は必ずしもクラスである必要はない(抽象クラスであってもよい)かもしれないが、ゲーデルは公理として以下を追加する。

  • Axiom 4. 必然的に存在するオブジェクト\(\small E\)はクラスである。

公理4から必然的に存在するオブジェクトはクラスであるから、”必然的に存在する”という機能(上記でいうauto関数)を神は継承している\(\small (G \in E) \)ことになるだろう。したがって、最終的に次の定理が証明される。

  • Theorem. 神(のインスタンス)は必然的に存在する。

これがゲーデルの神の存在証明の最終行の定理であった。

 このように理解すると、意外にそれっぽい前提のもとに神の存在を証明しているように見えなくもないだろう。公理1は相当に怪しい気もする(例えば、鳥と馬が実在するからペガサスも実在するということにはならない)けれど、公理2,3あたりはオブジェクト指向の基本であり、あまり疑いようのないものであるようにも思える。相応に疑わしいのは公理4だろう。\(\small E(x)\)が空集合でないことを前提としており、もし”この世に存在しなければならないものなど一つもない”、すなわち、\(\small \phi \in E(x)\)​ということを仮定するならば、この証明は破綻するということになる。実際、仏教の宗教上の前提は諸行無常(この世に不変なもの(存在しなければならないもの)など何もない)であり、この前提の下に神の存在を否定していることは知られていることだろう。仏教徒がこの証明にクレームをつけるならば公理4ということになる。

 以上がゲーデルの神の存在証明に関する考察である。ちなみに筆者は宗教というものに全く関わりがないし、今後もきっとないだろう。そのため、神が存在するかどうかなどどうでもいいし、きっとそんなものは存在しないだろうという気もするけど、必死になって否定するほどの興味も持ち合わせていないように思う。それでは果たして神は存在するのだろうか?余計なことを書くと宗教の人に怒られるかもしれないので、”神が存在するかしないか、それは神のみぞ知る”などという自己矛盾命題を提示して終わりにしておこう。

参考文献

[1] Gödel, Kurt. 1995. “Ontological Proof ”. In Kurt Gödel Collected Works, vol. III, ed. S. Feferman et al., 403-4. Oxford University Press.

コメント