一意に存在する

「\(F(x)\)を満たす\(x\)は一意に存在する」ことを\(\exists!x[F(x)]\)といった論理式で表すが、その定義にはいくつもの流儀があり、互いに同値であることを納得しておきたい。

そもそも「一意」という語は「1個以下」という意味なのか「ちょうど1個」という意味なのか分かりにくいが、ここでは前者(いわば「高々一意」)の意味で用いる。すると「一意に存在する」は「1個以下で、しかも1個以上」を意味し、つまり「ちょうど1個」ということになる。

●まず、上記の「一意」だけを取り出して論理式で表してみよう。これは\[\forall x\forall y[F(x)\wedge F(y)\rightarrow y=x\tag{A}]\]あるいは\[\exists x\forall y[F(y)\rightarrow y=x]\tag{B}\]と書ける。(A)と(B)が同値であることを示す。

((A)→(B))
(1)\(F(x)\)を満たす\(x\)が存在するとき、そのひとつを\(a\)とすると、(A)から\(\forall y[F(y)\wedge F(a)\rightarrow y=a]\)を得る。これは\(F(a)\rightarrow\forall y[F(y)\rightarrow y=a]\)と書き直すことができ、いま\(F(a)\)が成り立っていることから\(\forall y[F(y)\rightarrow y=a]\)を得る。ゆえに(B)も成り立つ。
(2)\(F(x)\)を満たす\(x\)が存在しないとき、\(F(y)\)は\(y\)によらず偽となることから、ただちに(B)を得る。■

((B)→(A))
(B)から、\(\forall y[F(y)\rightarrow y=r]\)を満たす\(r\)をとることができる(ただし、\(F(r)\)が成り立つとは限らないことに注意)。\(F(p)\)と\(F(q)\)を仮定すれば\(p=r\)と\(q=r\)をともに得るので\(q=p\)となる。したがって(A)が成り立つ。■

●(A)(B)いずれも、そこから\(\exists x[F(x)]\)を導くことはできない。「一意に存在する」を表す最も素朴な方法は、\(\exists x[F(x)]\)と上の(A)もしくは(B)を単純に「かつ」で結ぶことである。すなわち、\[\exists x[F(x)]\wedge\forall x\forall y[F(x)\wedge F(y)\rightarrow y=x]\tag{C}\]あるいは\[\exists x[F(x)]\wedge\exists x\forall y[F(y)\rightarrow y=x]\tag{D}\]とすればよい。言うまでもなく、\(\wedge\)の前後の束縛変数\(x\)は互いに無関係である。ところが実際には(D)の代わりに\[\exists x[F(x)\wedge\forall y[F(y)\rightarrow y=x]]\tag{E}\]と書かれることが多い。(D)と(E)は一般に\[\exists x[P(x)]\wedge\exists x[Q(x)]\qquad\mbox{と}\qquad\exists x[P(x)\wedge Q(x)]\]の関係に相当し、これは後者から前者を導くことはできるが逆は言えない。\(P(x)\)を満たすものと\(Q(x)\)を満たすものがそれぞれ存在しても、これらを同時に満たすものが存在するとは限らないからである。しかし、こと(D)と(E)に関しては、(E)→(D)だけでなく(D)→(E)も成り立ち、両者は同値となる。

((D)→(E))

\(F(x)\)を満たす\(x\)のひとつを\(a\)、\(\forall y[F(y)\rightarrow y=x]\)を満たす\(x\)のひとつを\(b\)とする。すると \(F(y)\rightarrow y=b\) の\(y\)に\(a\)を代入しても成り立つので\(F(a)\rightarrow a=b\)、いま\(F(a)\)から\(a=b\)を得る。すなわち、この「\(a\)であり\(b\)でもあるもの」は、\(F(x)\)と\(\forall y[F(y)\rightarrow y=x]\)を同時に満たしているので、(E)が成り立つ。■

さらに、\(F(x)\)と\(\forall y[y=x\rightarrow F(y)]\)が同値であることから、(E)は\[\exists x\forall y[F(y)\leftrightarrow y=x]\tag{F}\]と書くこともできる。

●「\(F(x)\)を満たす\(x\)は一意に存在し、そしてそれは\(t\)である」という命題を扱いたい場合もある。これは(C)の形を用いるなら\[F(t)\wedge\forall x\forall y[F(x)\wedge F(y)\rightarrow y=x]\]となるが、少々煩雑である。多くの場合、(D)(E)を用いた\[F(t)\wedge \forall y[F(y)\rightarrow y=t] \tag{G}\]や、(F)を用いた\[\forall y[F(y)\leftrightarrow y=t] \tag{H}\]という形で書かれる。